https://dreamhack.io/wargame/challenges/268/
페이지는 XSS1 문제와 동일하다.
그런데 vuln 페이지로 들어가 보니 xss1에서 떴던 alert 창이 안뜬다!
분명 있는데...
소스코드를 찾아보았다.
이렇게 되어있는데
찾아보니 innerHTML이 HTML5에서 innerHTML을 이용해서 입력된 <script> 태그를 허용하지 않는 거라고 한다.
그럼 script태그 말고 다른 태그를 사용하면 될 것 같다.
그리고 app.py 코드를 보면 vuln 함수만 다른데, 강의에서 render_template 함수는 전달된 템플릿 변수를 기록할 때 HTML 엔티티코드로 변환해 저장하기 때문에 XSS가 발생하지 않는다고 했으니, 결과적으로 vuln 페이지에 xss가 발생할 수 없다는 게 xss-1 문제와 차이점 같다.
Xss <script> 우회라고 검색해보니 보통 img 태그와 onerror를 쓰는 것 같다.
(후에 문제 풀이를 보니 svg/onload를 사용하는 풀이도 있었다!)
위의 그림처럼 사용하는데 나는 alert를 쓰지 않고 xss-1에서 했던 방식과 비슷하게
<img src=a onerror='location.href="/memo?memo="+document.cookie'>
이렇게 줬다.
그리고 memo 페이지로 돌아가 보면 flag가 나와있는 걸 볼 수 있다!
'Webhacking > Dreamhack' 카테고리의 다른 글
[Web] Dreamhack_ file-download-1 (0) | 2022.08.27 |
---|---|
[Web] Dreamhack_ command-injection-1 (0) | 2022.08.27 |
[Web] Dreamhack_ csrf-2 (0) | 2022.08.26 |
session-basic (0) | 2022.08.15 |
cookie (0) | 2022.08.15 |