xss-1

Untitled

코드를 보면 , /flag 엔드포인트에서 param arg를 post로 입력받게 된다. 이후 check_xss에 인자로 넘어가게 된다. url = f"http://127.0.0.1:8000/vuln?param={urllib.parse.quote(param)}" 이 read_url의 인자로 넘어가고. admin은 해당 url로 접속하게 되는 시나리오이다. 이때 param값이 santized되지 않았기에 XSS를 발생시킬 수 있다.

<script>location.href = “/memo?memo =” + document.cookie </script>를 주입하여

flag를 얻을 수 있다.

xss-2

Untitled

위와 거의 동일한 문제지만, /vuln end point에서

<script>var x=new URLSearchParams(location.search); document.getElementById('vuln').innerHTML = x.get('param');</script>

위와 같이 innerHTML을 사용하고 있다. 이럴경우,<script>태그가 필터링 되서 삽입할수없다.

<img src=1234 onerror>를 사용하여 src에서 error가 일어날경우 onerror 이벤트가 일어난다는점을 사용하여 우회하여 주었다.