响应变参数-挖掘潜在的逻辑越权

2019-03-17 15:10:36 44 11884

开始

对一个网站做测试的时候发现了这样一条请求:

这条请求返回的是个人信息(用户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 :

测试结果发现使用LOGIN参数可以成功的从A用户的个人信息越权获取到B用户的个人信息~

关于作者

mstkey36篇文章405篇回复

信息安全爱好者

评论44次

要评论?请先  登录  或  注册