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 @ 2024-04-23 17:04  jockerliu  阅读(54)  评论(0编辑  收藏  举报