SRC挖掘
业务支付逻辑安全案例
某度ID值爆破任意登录
社交应用越权泄露漏洞
某迅相册APP绕过XSS
某度利用上传触发XSS
泄露验证造成签约越权
小程序放包绕过人脸识别
业务逻辑绕过人脸识别
竞争并发拿下挑战赛
某B未绑定导致任意注册
时间校验机制领取VIP
某视频不安全对象引用
无回显SSRF修改利用
社交应用放包越权测回
理财支付漏洞四舍五入
某迅API分享导致重定向
吃货去改包提权超管
某云厂商社区SSRF挖掘
代金卷导致的支付错误
某鹅邮箱附件上传XSS
导出功能导致任意修改
某商城补领优惠券并发
限制购买多次创建绕过
钓鱼供应链挖掘利用
老SQL注入换思路就行
EDUSRC玩通用逻辑
企业功能从限制入手
从逆向角度玩APP测试
CNVD通用漏洞证书思路
地图Key泄露绕过利用
绕过CDN获取2高2中
首单VIP签约叠加使用
简单的JS分析未授权
冷门CORS配置出错挖掘
登录框到通用漏洞挖掘
统一系统认证挖掘点
前端校验错误直接捡洞
前端检验导致信息泄露
众测SRC测试姿势总结
细微数据包找越权撤回
AI代码审计实现自动出货
小程序资产测文件上传
爆破支付密码绕过限制
APP绕过时间过期限制
某APP逆向渗透测试总
EDU证书985泄露越权
小程序让地址校验失效
短信验证码缺陷到弱口令
JS逆向签名链到任意登录
小迪安全知识库
-
+
首页
JS逆向签名链到任意登录
JS逆向签名链到任意登录
初探接口:被 Sign 挡住的重放之路 测试登录接口时,首先尝试对「获取验证码」接口进行重放测试。使用 BurpSuite 抓取请求包后,直接重放发现服务端返回错误,无法再次获取验证码。 仔细观察请求头,发现每个请求都携带了一个 `sign` 字段:  直接开始逆向,先看下长度,32位,首先想到MD5加密  尝试关键词搜索sign,sign:,sign= 结果关联文件太多,不适合使用这种方式找;  换个方式,使用启动器分析 Promise.then() 可以看到是异步回调  :为了测试方便,验证码刷新接口有时间限制,换一个接口测试/page  进入末尾,打断点,刷新页面,发现已经生成了sign的值;  进入第一个异步栈v.request,发现这时的head为空,这里可以看出信息是在v里面的函数生成  打开数组v里边存在很多方法,打开第二个方法,发现onrequest,这里可以看出t为请求参数,e()函数加载了t  进入e()方法,找到e.headers.sign生成的方式,现在只要找到这段代码中的未知函数,这就可以生成sign的值; ``` sign=(time = headers['time'], t = md(data), ``` 最终函数的逻辑为:   接着继续找未知函数md(),pd() 先追md()函数   md()函数中包含未知函数gd()和\_d()函数,继续向下,拿到gd()  回到md()函数,继续追\_d()函数  接着找pd()函数,该函数中涉及未知fd()函数  找到fd()函数  进入fd()函数,发现该函数疑似MD5加密;推测是对n=t+e+time的MD5加密‘。  使用在线MD5加密平台验证,控制台获取n=t+e+time的值。 加密结果相同,均为:'02d932d40fabc5db9345f3309fb7d15a   到这里,我们就可以写pd()函数了 ``` function md5(str) { ``` 综上 所有的未知函数都已找到,可以说sign的值已经出来了。 ## 脚本测试 使用js脚本生成时间戳timestamp值和sign值  使用py脚本调用js,修改验证码请求包,两个手机号码同时收到验证码;  测试结果显示:**攻击者手机与受害者手机几乎同时收到了相同的验证码短信**。 这意味着服务端存在严重的逻辑缺陷: * `sign` 校验仅验证了请求合法性(防篡改、防重放),**但并未将验证码与目标手机号在服务端建立强绑定**。 * 或者,验证码在某一时间窗口内对所有手机号生效(全局验证码池)。  到这里就造成了任意用户登录漏洞! 任意用户登录的闭环 攻击者拿到受害者手机收到的验证码后(若配合社工、SIM 交换、或运营商短信劫持等场景),直接在登录接口输入: ``` 手机号:13900139000(受害者) ``` 由于验证码本身合法且在有效期内,服务端校验通过,攻击者成功登录受害者账户,完成**账户接管(Account Takeover)**。
xiaodi
2026年6月1日 16:58
3
0 条评论
转发
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
分享
链接
类型
密码
更新密码
有效期
Markdown文件
Word文件
PDF文档
PDF文档(打印)