XSS GAME - LEVEL 3 |
https://xss-game.appspot.com/level3
xss game level 3 문제 풀이 포스팅입니다.
문제 접근
먼저 이전 문제들과 다르게 입력값을 주는 곳이 따로 없고 url을 통해 문제를 풀이해야하는거같다.
이미지 1,2,3이 전시되어 있는 사이트인데 각각 이미지를 눌러보면
url을 frame# 뒤에 있는 숫자를 통해 이미지가 전시되는거같다.
소스 코드를 살펴보면
html 변수에 <img src='/image path'+ num + " .jpg/> 형식으로 이미지태그가 들어가는 것을 볼 수 있는데
내가 frame#뒤에 어떤 값을 입력하면 num변수에 들어가는 것이다. 위의 예시에서는 num에 1,2,3이 들어가게 된 것이다.
level2에서 error를 통해 alert를 실행시킬때
https://man-25-1.tistory.com/117?category=1021805
<img src='invalid path' onerror="alert('hello')" > |
와 같이 스크립트를 넣어주었는데
지금 현재 위의 html 에 더해지는 코드는
<img src='/static/level3/cloud+ 나의 입력 +. jpg'/>이므로
만약 입력에 'onerror='alert(1)'을 주게되면
<img src='/static/level3/cloud' onerror='alert(1)'.jpg/> |
가 되어서 /static/level3/cloud는 유효하지않은 이미지 경로가 되고, 에러가 발생되면서 팝업 메시지가 출력된다.
확실하게 이미지 경로가 유효하지않은 것을 확인하고싶다면
실제로 num에 아무값을 주지않거나 또는 100 과 같은 값을 주어서 이미지가 유효하지 않은것을 확인하고
이렇게 작성해도 무방하다.
문제를 풀이한 뒤에 힌트를 살펴보았는데 4번을 보면 script 태그가 작동하지 않는 이유에 대해서
브라우저가 페이지를 로드한 뒤에 스크립트를 실행시키지않기때문에 <script>태그가 작동하지 않는 것이라고 한다.
스크립트 태그가 필터링 되는 이유를 안 알아보았는데 이런 이유였군 !
'개인 공부 > WEB' 카테고리의 다른 글
[웹해킹] XSS GAME - LEVEL 5 (0) | 2021.07.13 |
---|---|
[웹해킹] XSS GAME -LEVEL 4 (0) | 2021.07.13 |
[웹해킹] XSS GAME - LEVEL 2 (0) | 2021.07.13 |
[웹해킹] XSS GAME - LEVEL 1 (0) | 2021.07.13 |
[웹해킹] xss에 들어가기 전 기초 공부하기 (2) | 2021.07.13 |
댓글