사이트 주소 : http://xss-quiz.int21h.jp
4번 문제입니다.
[문제 접근]
두 개 input 필드가 보입니다. 이전 문제처럼 text 타입의 필드와 select 형식의 필드(Japan 써있는 부분)가 존재합니다.
이 두 부분은 XSS 공격을 시도해 확인해보면 필터링을 하고 있습니다. ("<"와 ">"를 "<", ">"로)
프록시 도구로 패킷이 어떻게 나타나는지 확인해 보겠습니다.
Request 패킷을 확인하면, p3 파라미터에 hackme라는 값이 있는 것이 보입니다.
이 부분에 XSS 공격 구문을 넣으면 성공할 것으로 예상됩니다.
p3 부분의 hackme를 XSS 공격 구문 "<script>alert(document.domain)</script>"로 바꿔 날립니다.
p1=test&p2=&p3=<script>alert(document.domain)</script>
그런데 공격이 성공되지 않습니다..
Response 패킷을 확인해보면, 태그가 맞게 들어가지 않았습니다.
<input type="hidden" name="p3" value="<script>alert(document.domain)</script>">
이렇게 되서 <script> 구문이 실행되지 않았습니다.
2번 문제에서 했듯이 태그도 맞춰서 공격 구문을 삽입해봅니다.
[문제 정답]
정답 : "><script>alert(document.domain)</script><" 를 p3 파라미터에 입력
팝업에 도메인 주소가 나타납니다. 정답!
Congratulations!! 다음 스테이지로 넘어가시죠~
그 전에! 매번 Response를 확인하기 귀찮다면, 다른 방법도 존재합니다.
브라우저에서 F12를 눌러 개발자 도구를 실행하면 클라이언트 단의 웹 코드를 볼 수 있습니다.
화살표 표시로 웹 UI를 클릭하면 해당 부분을 쉽게 찾을수 있는데요.
확인해보면 input 필드가 어떻게 구성되었는지 확인이 가능합니다.
태그의 구성 등을 확인하고 value 값에 예상된 XSS 공격 구문을 삽입하면 더 빠르게 해결할 수 있습니다.
이 문제는 hidden 필드가 존재할 수 있고, 그 필드를 공격하는 것도 하나의 포인트라는 것이 핵심입니다.
[XSS Challenges] Stage #6 풀이 (0) | 2020.06.26 |
---|---|
[XSS Challenges] Stage #5 풀이 (0) | 2020.06.26 |
[XSS Challenges] Stage #3 풀이 (0) | 2020.06.25 |
[XSS Challenges] Stage #2 풀이 (0) | 2020.06.25 |
[XSS Challenges] Stage #1 풀이 (0) | 2020.06.24 |
댓글 영역