BUUCTF [RootersCTF2019] ImgXweb
考点:
- JWT编码解码
- 伪造session
启动环境:
提示登录查看内容,首先注册并登陆:
登陆成功后可以上传文件,并提示最大为1M
:
尝试传入一句话木马等内容:
上传文件均显示服务器错误,可能不是文件上传漏洞,再次收集信息:
发现网站存在robots.txt
:
访问得到:
给出了SECRET_KEY的值,猜测为session伪造,查看session:
发现Cookie中存在username=admin
,并且其存在session,尝试构造admin
的session
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoidGVzdCJ9.bDVu04cvIiwbY7K0ZoqzvPiIL2CKyF4loApBGUCflFo
首先解密session,其开头为eyJ
,猜测其为JWT(JSON WEB TOKEN):参考资料
使用在线JWT编码解码,得到原内容:
将其中的"user": "test"
修改为:"user": "admin"
,将刚刚得到的SECRET_KEY填入,重新生成jwt:
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiYWRtaW4ifQ.g_lGU4qTO2VhNrZK9k460xz828GcqKBayZPcmLmhUqE
使用F12中的Application修改session的值:
刷新页面后,成功以admin
用户身份登陆:
其中有一个:flag.png
:
<img class="p-2" style="width:150px;height:150px" src="static/128e8ea7ce4a37b7100fb40b28c01280/flag.png" alt="flag.png">
新标签页访问:
查看源码得到flag: