实战 | 一次JS接口泄露引起的渗透测试

admin 2022年6月21日21:43:35安全文章评论28 views1201字阅读4分0秒阅读模式

文章来源:先知社区(小白白兔)

原文地址:https://xz.aliyun.com/t/11451


0x01 前言

第一次写文章,有不足的地方请各位师傅指正


0x02 确定站点

首先通过前期的信息收集得到了站点目标

实战 | 一次JS接口泄露引起的渗透测试

目标站点长这样,还是熟悉的登录框,此时我的思路是,爆破管理员的用户名和密码,但这里登录的方式很明显是通过手机号来登录的,也就是说还得知道管理员的手机号码才能进行爆破,难度有点大,先放弃这种方法。


常规的话如果知道了管理员的用户名,还能去测一下找回密码处,是否有逻辑漏洞,因为本人信息收集能力不信,收集不到管理员的手机号码,所以爆破和找回密码这个点先放弃。


0x03 开始测试

上述的两个点都没法测试,此时我就可以试试目录扫描,利用目录扫描工具,看看是否有备份的源码,或者一些未授权的目录

实战 | 一次JS接口泄露引起的渗透测试


扫描一波过后也并没有发现可利用的点,然后我就想着去找一下js里面是否有未授权的接口,直接使用F12大法来分析一波,然后这里找了半天找到了一个似乎是获取用户列表的一个接口
实战 | 一次JS接口泄露引起的渗透测试

然后这里直接拼接访问一下

实战 | 一次JS接口泄露引起的渗透测试


这里出现了提示,说不允许get方法进行请求,那我改成post的方法试试
实战 | 一次JS接口泄露引起的渗透测试


看到回显的返回包,我心中窃喜,大概率是有戏的,这里提示我们的是请求参数缺失,pageIndex参数为空,那么我们可以直接构造一个pageIndex参数传过去看看
实战 | 一次JS接口泄露引起的渗透测试


接着提示我们pageSize为空,说明之前的传参是成功的了,接下来继续构造pageSize参数,然后提示我pageSize为空,继续构造后,发包
实战 | 一次JS接口泄露引起的渗透测试


这里成功的返回了数据,返回了一个测试的账号,那么此时我们就有了账号了,可以对该测试账号进行爆破,但我想的是,既然一个接口出现了未授权,那很大概率这个系统的所有接口基本上也都是未授权。

接下来,我继续从JS里面寻找接口,找到了一个/bear-scale/mip/scaleSystemUser/getScaleSystemUserList.json 的接口,按照之前的方法构造参数请求
实战 | 一次JS接口泄露引起的渗透测试


该接口返回了全站用户的手机号码和MD5加密的密码,密文解密为123456
实战 | 一次JS接口泄露引起的渗透测试


发现全站用户的默认密码为123456,但可惜的是,该接口只能获取到普通用户的用户名和密码,并没有返回管理员的。


于是又继续找接口,在一个接口中,成功返回了管理员的手机号码,但是没有返回加密的MD5密码,但前面已经知道了,全站的默认密码为123456,于是就试了一下成功登录。

实战 | 一次JS接口泄露引起的渗透测试

后续看了下上传接口,白名单限制太死,没法上传shell


0x04 结束

本次测试结束,各位师傅一定要遵纪守法,不对没有授权的站点进行测试

实战 | 一次JS接口泄露引起的渗透测试


推荐阅读:


实战 | 当裸聊诈骗遇到黑客,记一次新型的裸聊诈骗渗透经历


实战 | 记一次企业钓鱼演练


实战 | 实战一次完整的BC网站渗透测试


实战 | 记一次渗透非法网站并成功提权的案例


实战 | 记一次wooyun漏洞库意外发现的后门


如有侵权,请联系删除

实战 | 一次JS接口泄露引起的渗透测试


原文始发于微信公众号(HACK学习君):实战 | 一次JS接口泄露引起的渗透测试

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月21日21:43:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  实战 | 一次JS接口泄露引起的渗透测试 http://cn-sec.com/archives/1133137.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: