반응형
CSRF는 사용자의 인증된 세션을 악용하는 공격 방식인 반면, XSS는 인증된 세션 없이도 공격을 진행할 수 있다는 차이점이 있다.
@app.route("/vuln")
def vuln():
param = request.args.get("param", "").lower()
xss_filter = ["frame", "script", "on"]
for _ in xss_filter:
param = param.replace(_, "*")
return param
/vuln에서 frame, script, on을 필터링하고 있다.
url을 보면 script가 사용되어 *이 출력되고 있다.
@app.route("/admin/notice_flag")
def admin_notice_flag():
global memo_text
if request.remote_addr != "127.0.0.1":
return "Access Denied"
if request.args.get("userid", "") != "admin":
return "Access Denied 2"
memo_text += f"[Notice] flag is {FLAG}\n"
return "Ok"
/admin/notice_flag는 접근 권한이 없다고 나왔다.
코드의 조건을 보면 접속자의 ip주소가 127.0.0.1이어야 하고 userid는 admin을 사용해야 한다.
따라서 필터링되지 않은 img 태그와 조건을 넣어 /flag 페이지에 입력한다.
<img src="/admin/notice_flag?userid=admin"/>
반응형
'Dreamhack > Web' 카테고리의 다른 글
[wargame.kr] strcmp (0) | 2024.03.25 |
---|---|
csrf-2 (0) | 2023.11.09 |
XSS Filtering Bypass (0) | 2023.11.09 |
[wargame.kr] fly me to the moon (0) | 2023.11.09 |
simple_sqli (0) | 2023.11.09 |