XSS game - Level5

문제 풀이

Mission Description

Cross-site scripting isn't just about correctly escaping data. Sometimes, attackers can do bad things even without injecting new elements into the DOM.

사이트 간 스크립팅은 데이터를 올바르게 이스케이프하는 것이 그냥은 아닙니다. 때때로 공격자는 DOM에 새로운 요소를 삽입하지 않고도 나쁜 일을 할 수 있습니다.

Mission Objective

Inject a script to pop up an alert() in the context of the application.

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

Write Up

Google 페이지와 비슷한 페이지가 출력됐다.

 

첫 페이지에 할 것이 Sign up 링크로 이동하는 것 밖에 없어서 이동하였다.

이동하니, Email를 넣는 Input이 있었다. 일단 lrtk@lrtk.lrtk을 넣었다.

 

Email에 lrtk@lrtk.lrtk를 넣고 Next 링크를 들어가니, 가입 인사와 곧 리다이렉트된다는 문구가 출력됐다.

리다이렉트의 주소는 첫 페이지로 리다이렉트됐다.

 

여기까지 확인하였을 때, Email의 Input은 페이지에 반영되는 것이 없는 것으로 보였다.

그래서 signup 페이지의 next 파라미터가 의심이 갔다.

 

그래서 signup 페이지의 next 파라미터를 lrtk으로 요청하여 코드를 확인해보니, a 태그의 href 속성의 값으로 반영된 것을 확인할 수 있었다.

 

나는 next 파라미터에 '><script>alert(1)</script><'를 넣어서 요청을 하면 XSS가 반영이 될 것이라 생각하여 시도하였다.

 

하지만 저번 문제처럼 '이 문자열에서 벗어나서 별도의 태그로 반영이 되는 것이 안되어 XSS에 실패하였다.

 

고민 끝에 인터넷에 XSS 페이로드를 검색하여 확인한 결과 javascript:alert(1)를 href에 넣으다면 javascript가 실행된다는 것을 알 수 있었다.

 

이를 그대로 적용하여 시도하니, 간단하게 풀이할 수 있었다.

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

XSS game - Level6  (0) 2022.02.14
XSS game - Level4  (0) 2022.02.12
XSS game - Level3  (0) 2022.02.09
XSS game - Level2  (0) 2022.01.23
XSS game - Level1  (0) 2022.01.22