BUUCTF 加固题 babypython WriteUp
·
原题wp参考链接:https://www.cnblogs.com/karsa/p/13529769.html
这是CISCN2021 总决赛的题,解题思路是软链接zip 读取文件,然后伪造admin的session读取flag
回到buuctf的这个题:
ssh连上去,查看 文件 /app/y0u_found_it/y0u_found_it_main.py
关键代码:
random.seed(uuid.getnode())
app = Flask(__name__)
app.config['SECRET_KEY'] = str(random.random()*100)
random生成伪随机数,uuid.getnode()用来获取当前主机的的MAC地址
所以用软链接读取/sys/class/net/eth0/address,然后伪造session就可以有admin的session了。
这里我的修复思路可能比较麻烦,但也是个可行的方法:
首先下载secrets模块,secrets模块可以提供比较强的随机数
pip install python-secrets -i https://pypi.tuna.tsinghua.edu.cn/simple
修改y0u_found_it_main.py的代码
导入secrets模块
import secrets
修改如下一行代码:
app.config['SECRET_KEY'] = str(secrets.randbelow(10000000000))
或者可以这样改
app.config['SECRET_KEY'] =secrets.token_hex(16)
然后访问check

这里不知道什么原因通过不了了,第一次试我是通过了的,大家可以用这个方法试试。

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)