赞
踩
import requests
target = "http://111.200.241.244:61777/shop?page=%d"
for i in range(500):
print(i)
res = requests.get(target%(i)).text
if "lv6.png" in res:
print(target%(i))
break
http://111.200.241.244:61777/shop?page=181
发现只有更改discount参数有效果,跳转到http://111.200.241.244:61777/b1g_m4mber界面,然而此页面有权限限制。此时主要有两种思路1、看看有无sql注入的洞,能不能拿到admin账号。2、伪造admin的jwt。
未找到注入漏洞,后来获得源码后看到其为orm查询,使用了 ORM 之后,Relational DB 的接口被完全封装在 ORM 机制内部,不对外暴露,当然防止了 SQL 注入攻击
user = self.orm.query(User).filter(User.username == username).one()
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InF3ZSJ9.U_RNAhBZvEMY1nwmWWeA3Vh50ghzJb0R7qV-uAS1V78
jwt(json web token)类似于session也是会话保持的一种技术,由三个部分组成,由**.分隔,第一部分为头部(header),第二部分为载荷(payload),第三部分是签名(signature).前两个部分都为base64加密,而第三部分签名由header指定的加密算法加盐**加密(secret key),通常直接使用 HMAC SHA256.
详见blog:什么是 JWT – JSON WEB TOKEN - 简书 (jianshu.com)
用myjwt工具爆破出盐值secret_key,还有一种c-jwt-cracker的工具更方便,不用指定正则和字典。
工具用法:[MyJWT-Json网站令牌渗透测试工具Json Web Token(JWT) |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。