분류 전체보기
-
Secure Coding - Command InjectionJava/Spring 2018. 9. 7. 14:39
Command Injection Cmdi - .sh나 .bash 등 배치파일이나 커맨드 입력으로 injection 수행 Tools - Encoder/Hash -> programs=calc.exe&shutdown -t -s 36000 붙이고 URL Encoding programs%3Dcalc.exe%26shutdown -t -s 36000를 붙여놓고 요청을 수행한다. WhiteList기법을 이용해서 Cmdi를 방어한다. Runtime.getRuntime().exec("cmd.exe /c " + command); 로 OS에 명령을 실행한다. String command = request.getParameter("programs"); WhiteList 기법 -> Map을 사용한다. Map whiteList = ..
-
Secure Coding - SQL injectionJava/Spring 2018. 9. 7. 14:06
SQL injection SQLi 원인 -> 1. 입력과 검증을 하지 않아서 2. statement는 안전하지 않아서 perparestatement를 써야한다. admin으로 회원가입이 되는지 -> 로그인할 때도 비밀번호가 틀렸습니다 처럼 한방향이 아닌 아이디나 비밀번호가 틀렸습니다로 고치기 id에 admin' -- 를 주면 패스워드가 주석처리가 된다. 또는 id에 ' or 1 = 1 -- 를 하매도 인증이 성공된다. 1 = 1 이 참이니까 -- 뒤로는 무시하고 성공하게 된다. 테이블 컬럼 목록 출력 - id에 테이블쿼리를 입력한다. -> DB 테이블이 다 나온다. 테이블에 컬럼의 타입까지도 다 나온다. ADMIN' UNION ALL SELECT USER_ID USER_PASSWORD FROM USERS..
-
Secure Coding - ParosJava/Spring 2018. 9. 7. 12:23
Proxy Tool이다 설치 후 Paros 우클릭 - 속성에서 jdk가 32비트인 jdk폴더 안에 bin까지의 Path를 Paros에 적용 되있는 javapath까지의 경로로 복사시키고 적용하고 실행시킨다 Tool -> Options -> Local Proxy Port를 8888로 변경 후 OK Explorer -> 인터넷 옵션 -> 연결 -> Lan 설정 -> 프로시 설정 사용 주소 - localhost , 포트 - 8888 -> 고급 설정에서 예외된것이 있으면 없애고 확인 설정 확인 후 링크를 이동하면 안전하지 않은 사이트라고 페이지가 뜬다. 페이지를 이동하면 Paros에 기록이 남는다. Request와 Response를 볼 수 있다. Trap Request Check하고 login 버튼을 누르면 i..
-
Secure Coding - 보안 취약점 관리 사이트Java/Spring 2018. 9. 7. 10:24
CWE ( Common Weakness Enumeration ) 미 국토 안보우에서 관리하는 웹에 관련된 보안 취약점들을 모아 놓은 사이트 http://cwe.mitre.org 무엇을 탈취하는 공격인지, 어떤 코드가 있으면 어떤 취약을 발생한다. 등 설명이 디테일하게 작성되있다. CVE ( Common Vulnerabilities and Exposures ) http://cve.mitre.org CWE : 일반적인 취약점의 분류 체계 CVE : 발견된 보안 취약점의 히스토리 SANS ( SysAdmin, Audit, Network, Security ) http://sans.org 가장 위험한 25가지 취약점을 정리한 목록 취약점을 줄이거나 완화할 수 있는 주요 완화방법 제시 구성요소간 안전하지 않은 상호..
-
Secure Coding - 소프트웨어 개발 방법론Java/Spring 2018. 9. 6. 11:26
* Secure Coding 1. 소프트 개발 보안 방법론 - 개요 개발서버 - 스테이징서버 - 웹애플리케이션서버 3가지가 있다. 그 뒤에 DB가 존재한다. 방화벽이 있으면(인가되지않는 사용자막는 방화벽, 패턴인식 방화벽, 웹 방화벽) 방화벽을 달아도 애플리케이션서버가 바로 공격당할 수 있다. ex)DDOS, 랜섬웨어 - 보안 침해사고 유형 및 사례 멀웨어, XSS, 워터링 홀은 타겟이 개인이고 SQLi, DDOS, Web Shell 등은 서버를 공격한다. MyBatis에서 ${}를 쓰면 SQLi에 위험이 있다. 양자컴퓨터로도 못푸는 암호 방식 -> 블록체인 웹애플리케이션 취약점 이용 - url패턴을 통한 개인정보 탈취 - 서버로 접근해서 내부망 해킹 및 악성코드 삽입 - 파일 업로드 취약점을 이용 - ..
-
JQuery - Html5 data-, Travarsing, Shadow DOMWeb/Js 2018. 9. 4. 13:05
JQuery CDN Html5 data-, Travarsing DOCTYPE html> Vacation Packages $(document).ready(function() { $('#vacations').find('.vacation').find('button').click(function() { // $(this).detach() // element는 제거하고 DOM은 제거하지 않음. // var price = $(' From $399.99 ') // $(this).after(price) // var price = $(' From $399.99 ') // $(this).closest('.vacation').append(price) // 인접한 해당 태그 부모를 찾는다. // $(this).remove()..
-
Spring Problem - class="org.mybatis.spring.SqlSessionTemplate" not foundJava/Spring 2018. 8. 29. 18:02
org.hibernate hibernate-validator 6.0.12.Final cglib cglib 3.2.7 org.mybatis mybatis-spring 1.3.2 org.mybatis mybatis 3.4.6 mybatis 모듈을 찾을 수 없다는 에러가 나와서 pom.xml에서 해당 dependency를 추가했더니 에러가 사라졌다. 추가로 MySQL을 사용할 경우 mysql mysql-connector-java 5.1.31 mysql-connector-java 를 이용한다.