XSS game - Level3

문제 풀이

Mission Description

As you've seen in the previous level, some common JS functions are execution sinks which means that they will cause the browser to execute any scripts that appear in their input. Sometimes this fact is hidden by higher-level APIs which use one of these functions under the hood.
The application on this level is using one such hidden sink.

 

이전 수준에서 보았듯이 일부 일반적인 JS 함수는 실행 싱크로 브라우저가 입력에 나타나는 모든 스크립트를 실행하게 합니다. 때때로 이 사실은 내부에서 이러한 기능 중 하나를 사용하는 상위 수준 API에 의해 숨겨집니다.
이 수준의 응용 프로그램은 이러한 숨겨진 싱크를 사용하고 있습니다.

Mission Objective

As before, inject a script to pop up a JavaScript alert() in the app.
Since you can't enter your payload anywhere in the application, you will have to manually edit the address in the URL bar below.

 

이전과 마찬가지로 스크립트를 삽입하여 앱에서 JavaScript의 alert를 출력합니다.
애플리케이션 어디에도 페이로드를 입력할 수 없으므로 아래 URL 표시줄에서 주소를 수동으로 수정해야 합니다.

Write Up

각 이미지의 이름에 맞춰서 URL Fragment가 변화가 되는 것을 볼 수 있었다.
한번 URL Fragment를 4로 변경하여 서버에 요청하였다.

확인해보니, 이미지 제목과 이미지의 경로에 들어가는 것을 확인하였다.

XSS를 시도하기 위해 "><"를 넣어봤지만 src 속성의 문자열으로 인식이 되어 아무 현상이 일어나기 않았다.
그래서 "대신하여 '를 사용하여 다시 시도하였다.

'를 사용했을 땐 src 속성의 문자열으로 인식되지 않고 별도의 문자열로 인식이 되었다.
이를 이용하여 '><'사이에 XSS를 시도하였다.

src 속성이 "으로 묶어있는데, '으로 넣어줌으로 src 속성에서 벗어날 수 있었다.
이를 이용하여 XSS 페이로드를 넣어서 공격에 성공하였다.

'Wargame > XSS GAME' 카테고리의 다른 글

XSS game - Level6  (0) 2022.02.14
XSS game - Level5  (0) 2022.02.13
XSS game - Level4  (0) 2022.02.12
XSS game - Level2  (0) 2022.01.23
XSS game - Level1  (0) 2022.01.22