CSRF(Cross-Site Request Forgery; 크로스 사이트 요청 위조)CSRF(Cross-Stie Request Forgery)는 서버에서 요청 주체와 요청 절차를 확인하지 않고 요청을 처리하는 경우 발생할 수 있는 공격입니다. 사용자의 권한으로 요청이 실행되는 취약점입니다.=> 자동 회원가입=> 게시판 자동 글쓰기=> 광고 배너 클릭 예시패스워드 변경요청 changePwForm.jspNew Pw: _______New Pw: _______[change] 패스워드 변경처리 changePwProc.jsp?newpw=(1) 인증(로그인) 여부 확인(2) 처리에 필요한 값 중 사용자가 결정해야 할 값이 전달되었는지 확인(newpw)(3) 처리에 필요한 값 중 시스템이 가지고 있는 값을 추출 -> ..
DBD(Drive By Download) 공격 취약점 설명 ● Drive By Download의 약자 ● 웹서핑 중 특정 실행파일 다운로드가 진행되는 것 ● 어떤 사이트를 방문했는데 방문한 사이트에서 자신도 모르게 악성파일을 다운로드 받게 되는 것 ● 공격자는 홈페이지를 해킹 후 사용자의 취약점을 익스플로잇(exploit)하는 악성 스크립트와 악성코드를 은닉 ● 취약한 PC 환경의 사용자가 홈페이지에 접속 시 사용자 의도와는 무관하게 악성코드가 다운로드되어 설치되는 공격기법 공격 포인트 웹브라우저의 취약점을 이용한 악성코드 삽입 브라우저에 설치된 플러그인이나 확장 프로그램의 취약점 이용 해킹시나리오 악성코드를 배포하는 유포지를 생성하고 사용자 접속을 유도하는 페이지인 경유지를 생성합니다. 경유지에서 re..
이전 포스트에 이어서 작성하였습니다. [보안 취약점 진단 및 대응/취약점] - 소스코드 진단 소스코드 진단 소스코드 진단 웹애플리케이션 취약점 진단은 크게 동적진단과 정적진단(소스코드진단)으로 나뉩니다. 두 진단의 가장 큰 차이는 "소스코드(정답지) 보고 진단하느냐?" 입니다. 동적진단 장점: psjin230.tistory.com 정오탐 판별 #1 String fileName = request.getParameter ("P"); BufferedInputStream bis = null; BufferedOutputStream bos = null; FileInputStream fis = null; try { response.setHeader("Content-Disposition", "attachment;fil..
소스코드 진단 웹애플리케이션 취약점 진단은 크게 동적진단과 정적진단(소스코드진단)으로 나뉩니다. 두 진단의 가장 큰 차이는 "소스코드(정답지) 보고 진단하느냐?" 입니다. 동적진단 장점: 상대적으로 진단 소요기간이 적다.(1 url 2~3day | 1주~2주) 단점: 누락의 가능성이 상대적으로 높다. 정적진단 장점: 보다 깊이 있고 상세한 진단이 가능하다. 단점: 시간이 오래 걸린다.(1서비스 1url 최소 2주~수개월) 진단자 역량에 따라 결과 산출물의 품질이 달라진다.(편차가 상대적으로 크다) 소스코드 진단 목적 소스코드를 활용하여 애플리케이션 내 모든 입/출력 값에 대한 Data Tracing을 통해 취약점 누락 최소화 및 상세 취약점 점검을 수행하여 보안 수준을 향상시키는데 목적을 둡니다. 소스코..
HTTP 특징 요청, 응답 구조 cmd 창에서 curl -v http://victim:8080/WebGoat 명령어를 입력합니다. Trying 192.168.0.10.:8080 : 연결 GET /WebGoat HTTP/1.1 : 요청시작 => 방식 URL 프로토콜/버전 Host: victim:8080~ : 요청 헤더 시작(서버에서 참조하는 값) => HTT는 확장성이 높다 한칸 띄어쓰기 : 요청 헤더의 끝(GET 방식의 요청이므로 요청 본문 생략) HTTP/1.1 302 Found~ : 응답 시작 => 프로토콜/버전 응답(상태)코드 메시지 Server: Apache-Coyote/1.1 : 응답 헤더 시작(브라우저에서 참조하는 값) Location : /WebGoat : 리다이렉션 주소(서버로 다시 요청)..
경로조작 공격경로조작(Path Traversal) 공격은 외부에서 전달된 값이 서버 내부의 파일을 참조하는데 사용되는 경우에 발생하는 취약점으로, 외부 입력 값에 경로를 조작하는 문자열(. .. / \ 등) 포함 여부를 확인하지 않고 사용하면 제한된 경로를 벗어나 시스템 파일 등에 접근이 가능해지는 취약점입니다. => 이 방식은 파일 저장 경로는 외부에 노출되지 않으나, 파일명에 경로 조작 문자열 포함 여부를 확인하지 않았기 때문에 원래 접근할 수 없는 (시스템) 경로의 파일을 다운로드 할 수 있는 문제가 발생 보안대책외부 입력값을 서버 내부 파일을 참조하는데 사용하는 경우, 외부 입력값에 경로 조작 문자열 포함 여부를 확인하고 사용하거나, 사용할 수 있는 값을 미리 정의하고 정의된 범위 내의 값만 사..
보안 계층 Origin(출처) origin(출처)는 접근할 때사용하는 URL의 스킴(프로토콜), 호스트(도메인), 포트로 정의되는데, 두 객체의 스킴, 호스트, 포트가 모두 일치하는 경우 같은 출처를 가졌다고 말합니다. https://www.test.com:80/main/search?type=blog&postnum=50#security scheme Domain Name Port File Path Parameters Anchor Scheme = 프로토콜 Host Address = Domain Name or IP Address Anchor = Fragment = 책갈피 = 해당 문서 내에서 특정위치 Origin = Scheme + Host Address + Port Same Origin = 동일 출처 [예제..
Command Injection Command Injection은 운영체제 명령어(쉘 명령어)를 실행하는 기능이 존재하는 경우, 외부 입력값을 검정, 제한 하지 않고 운영체제 명령어 또는 운영체제 명령어의 일부로 사용하는 경우 발생하는 취약점입니다. 이 공격을 통해 공격자는 시스템 제어권을 탈취하여 해당 시스템을 마음대로 제어할 수 있게 됩니다. => 검증하지 않았다는 것은 추가 명령어 실행에 사용되는 &, |, ; 등의 문자열 포함여부를 확인하지 않았다는 의미 => 제한하지 않았다는 것은 내부 조직에서 사용할 수 있는 명령어 또는 명령어의 파라미터 값을 미리 정의하고 정의된 리스트 내에서 사용되도록 하지 않았다는 의미 Command Injection 취약점을 방어하기 위해 외부 입력값을 검정, 제한하여..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.