前言
很简单的一次测试,轻松拿到管理员权限。 仅仅因为开发忘记把 js 当中的手机号删除,导致整个系统沦陷。
测试过程
打开网站,挂 Burpsuite HAE 发现某 JS 文件中存在手机号
7fbad524a1329310e9f58bfce944f085.png定位 js 文件
95008c13c97db51d32f8a4e4e46da39a.png 相关接口名为 account/loginOauthToken一眼是登录接口,推测手机号是属于开发的,为了方便测试放在 js 文件里,后期上线忘记删除了。 接下来需要构造数据包,发送请求,懒得看了,直接把 js 复制塞到大模型里
根据下面代码,构造HTTP请求包
a82c8b3c373ceb81fb1e24ab784e0959.png 粘贴 host 文件,发送过去,拼接 API,发送。 该接口无需密码,只要知道 username 就能返回用户登录凭证,任意用户登录到手 de9741cad08bb32890dfad5d4a6074f5.png 把 access_token 拼接到 Authorization 后面 遍历 API
成功获取敏感信息
1357d8b0f5aec4eb3eb526c72b7fdfd4.png 但有部分 API,提示无权限 在获取个人信息当中,看到了该用户的创建人,角色是管理员,userid 是 xxxxadmin,xxxx 为系统名称缩写。 将其贴到
POST /account/loginOauthToken HTTP/1.1
Host:
Content-Type: application/x-www-form-urlencoded
Content-Length: 42
username=xxxxadmin&grant_type=app成功返回管理员的 token 上述提示无权限的 API 也能够查看了
总结
开发在测试完测试完毕后,应该即时把 js 当中的敏感信息删除。