XSS game - Level2

문제풀이

Mission Description

Web applications often keep user data in server-side and, increasingly, client-side databases and later display it to users. No matter where such user-controlled data comes from, it should be handled carefully.
This level shows how easily XSS bugs can be introduced in complex apps.


웹 응용 프로그램은 사용자 데이터를 서버 단과 클라이언트 단 데이터베이스에 보관하고 나중에 사용자에게 출력합니다. 이러한 사용자 데이터의 위치가 어디있든 상관없이 신중하게 처리해야합니다.

이 레벨은 XSS 버그가 복잡한 앱에 얼마나 쉽게 사용될 수 있는지 보여줍니다.

Mission Objective

Inject a script to pop up an alert() in the context of the application.
Note: the application saves your posts so if you sneak in code to execute the alert, this level will be solved every time you reload it.


스크립트를 삽입하여 애플리케이션 컨텍스트에서 alert를 출력합니다.

참고 : 애플리케이션은 게시물을 저장하므로 경고를 실행하기 위해 코드에 몰래 들어가면 다시 로드할 때마다 이 수준이 해결됩니다.

Write Up

위 문제의 설명을 읽어보면 일단 alert 창을 출력하는 것이 목표인 것으로 보인다. Note에 적힌 말을 해석해봤는데, 무슨 말을 하고 싶은지 모르겠다....

코드에 몰래??...음... 모르겠다.


일단 한번 문제를 풀어보겠다.

이번에도 굳이 공격 백터는 찾을 필요는 없을 것으로 보인다.
일단 입력값에 대한 검증이 있는지 확인하기 위해 <script>alert(1)</script>를 넣어서 값을 저장하도록 하겠다.

아무것도 없어서 '입력값에 대한 사전 검증을 통해 스크립트 부분이 삭제가 된 상태로 업로드가 되는 건가?'라는 생각을 했었다.
개발자 도구을 열어서 한번 코드를 확인하였다.

JS가 제대로 들어가서 페이지에 나타나지 않았던 것이였다. 나는 alert창이 출력되지 않아서 삭제가 된 줄 알았는데, 그것이 아니였다.
입력값에 대한 필터링은 없는 것으로 보여서 img 태그로 XSS를 다시 도전해봤다.

문제를 풀었다는 alrt 창이 출력되는 것을 볼 수 있었다.

'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 - Level3  (0) 2022.02.09
XSS game - Level1  (0) 2022.01.22