flask session 伪造 伪随机数题

今天见了一个没做过的flask伪造题目,先看题[CISCN 2019华东南]Web4

点击发现参数?url=XXX可以利用,尝试下file协议。

被过滤了,可能是匹配,尝试绕过下。

看看环境变量发现/app 看下/app/app.py

明显的session伪造,但是secrect_key生成却是伪随机数式的。这里先解释下random.seed(uuid.getnode())。uuid.getnode()是获取本机的MAC并以48位二进制进行返回,那么知道这函数的含义后接下来要做什么就清楚了。先获取靶机的MAC看看。linux下mac地址的位置:/sys/class/net/eth0/address

得到地址后编写exp,

点击查看代码
import random

mac="02:42:ac:02:a8:e6"
nmac=mac.replace(":", "")
random.seed(int(nmac,16))  // 这里的int(nmac,16)就是02:42:ac:02:a8:e6去掉冒号的16进制表示
key = str(random.random() * 233)
print(key)
得到我们所需的secret_key之后就是正常的flask-session-cookie-manager-master进行解码编码了,flag在/flag中,且用户名要是fuck才能访问。


访问/flag将cookie改为我们伪造的进行访问得到flag。

posted @   jockerliu  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示