컴퓨터 보안 웹 취약점 실습 CSRF
* 실습 환경 구축은 웹 취약점 실습 환경 구축 에서 참조
Section 1. CSRF (Cross Site Request Forgery)
1. CSRF
- XSS와 동일한 원리로 게시판, 이메일 등 컨텐츠에 악성 스크립트 또는 HTML 태그 삽입
- 사용자 측 브라우저에서 삽입된 스크립트 또는 HTML 태그가 실행됨
- 공격자가 의도한 행위(CRUD)가 있는 위조된 HTTP 요청이 강제로 수행됨
2. 실습 원리
- 가로 세로 크기1 또는 0인 img 태그를 삽입 (사용자는 알아차리기 어려움)
- HTML 문서를 먼저 주고받은 후에 사용자 측 브라우저에서 HTML 문서를 파싱하다가 img 태그를 화면에 출력하기 위해 src 속성의 지정된 URL 요청(공격자가 의도한)을 보내는 원리
3. CSRF 실습
① Burp Suite 실행 후 Proxy -> Open Browser
② Burp Suite 브라우저를 통해서 Web Goat 접속 후 CSRF 실습 클릭
③ 게시글 작성 요청 URL이 어떻게 보내지는 지 Burp Suite를 통해 확인
- POST 형식으로 /WebGoat/attack?Screen=204&menu=900 에다가
- 제목, 내용 등의 정보가 뒤에 붙여져서 요청이 보내짐 title=test&message=test&SUBMIT=Submit
- 즉, 아래와 같은 URL을 통해 게시글을 작성하는 요청을 보낼 수 있는 것을 확인함
http://localhost:8080/WebGoat/attack?Screen=52&menu=900&title=값&message=값&SUBMIT=Submit
④ 아래처럼 글을 작성하도록 하는 URL을 img 태그의 src 속성으로 지정
⑤ 해당 게시글을 클릭하면 1. HTML 문서 요청, 2. img 태그의 src 속성의 URL 요청을 보냄
- HTML 문서 요청
- img 태그의 src 속성 URL 요청
⑥ 새로고침하면 다음과 같이 i am fool 제목의 게시글이 자동으로 생성됨
4. CSRF 실습 결과
- 단지 게시글을 클릭했을뿐인데 삽입되어 있던 img 태그의 src URL 요청이 보내지게 되어 사용자의 의지와는 무관하게 자동으로 게시글이 생성되었다.