[Web]CSAW CTF 2021
Last updated
Was this helpful?
Last updated
Was this helpful?
SSTI có filter nên bypass bằng hex encode và |attr
PAYLOAD:
FLAG: flag{m0mmy_s33_1m_4_r34l_n1nj4}
Như description thì đăng nhập với username là admin là được. fuzz admin' or 1=1 -- -
thì phát hiện bị xóa chuỗi admin và từ space trở về sau.
PAYLOAD: username=adadminmin'/**/or/**/1=1--/**/-&password=blahblah
FLAG: flag{wh0_n3ed5_a_p4ssw0rd_anyw4y}
Một giải thất bại để đồng đội gánh :( chỉ làm được 2 câu ez. Bài có source thì không tìm ra bug còn không source thì fuzz quá ngu :))) thôi thì lỡ viết rồi thì viết luôn mấy bài không giải được.
Dưới đây là wu được viết lại sau khi đã đọc write up khác nhầm mục đích lưu lại làm tài liệu học tập.
Tóm tắt: bài này cho mình 1 file cần được decode để có flag. Nhưng khi gửi file này lên server thì sẽ không decode được do không có key
và có 1 endpoint để get được key là /admin/key
nhưng không thể access được do đã bị deny all bởi nginx config.
Trong file config có nhắc về path_info
được được gunicorn xử lý trong wsgi. Đọc source code wsgi.py trên github của của gunicorn.
Đoạn code trên cho mình biết có thể truyền 1 header script_name
. Header này có thể giúp mình bypass được deny của nginx (với điều kiện underscores_in_headers
ở mode on).
Giải thích: khi path là a/b/c và script_name là a được gửi đi đến nginx rồi được truyền cho gunicorn backend xử lý thì path được nhận lúc này là /b/c.
Get được key: b5082f02fd0b6a06203e0a9ffb8d7613dd7639a67302fc1f357990c49a6541f3
Có key có file và cách decrypt có trong file server.py, thực hiện viết lại script decrypt:
FLAG: flag{gunicorn_probably_should_not_do_that}