对一个网站做测试的时候发现了这样一条请求:
这条请求返回的是个人信息(用户ID、手机号、密码)
{"responseData":{"userid":"用户id","login":"用户名","password":"密码","mobilenum":"手机号","mobileisbound":"01","email":null}}
一开始的想法是变为GET请求(可行),然后增加JSONP劫持的回调参数。。。(失败)
过程
挖不到漏洞怎么办?瞎想,想多了,尝试多了就会有惊喜!后来想到响应变参数的方式。
一开始我尝试的是将返回的JSON内容变为HTTP请求参数的格式,但没成功。
后来一想会不会是因为参数命名格式问题导致的,于是开始了下面的测试。
注意同网站其他请求参数的命名方式
结论:大写、英文
响应变参数
(注意参数值都应为B用户,也就是你需要准备A、B两个用户)
上面所述的返回信息中包含了很多“参数”,可生成如下(这里可以使用我写的一个BurpSuite插件进行转换 - https://github.com/gh0stkey/Json2Dict 【查看原文即可访问】):
userid=B用户id
login=B用户名
password=B用户密码
mobilenum=B用户手机号
email=B用户邮箱
整合
B信息+命名规则,最后变成如下的字典:
(F12进入Console使用JavaScript的 str.toUpperCase()
转换成大写字母)
USERID=B用户id
LOGIN=B用户名
PASSWORD=B用户密码
MOBILENUM=B用户手机号
EMAIL=B用户邮箱
结尾
然后Burp Intruder模块开启(使用A用户的凭证去跑),导入字典(这里参数位置在POST请求正文中),Start :
本文始发于微信公众号(米斯特安全团队):响应变参数-挖掘潜在的逻辑越权
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论