csrf-1

minii_
|2023. 11. 9. 18:19
반응형

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