1. 测试账号泄露
之前测试发现,开发人员在系统开发过程中为了方便登录测试系统会将测试账号及密码以注释的形式保存在代码中。在测试过程中可以用泄露的账号密码尝试系统登录,或者固定泄露的密码对账号进行爆破。
那如何发现泄露的账号密码?可以先触发一个登录的数据包,获取包里用户名参数,再到浏览器去搜索该参数是否存在对应测试账号泄露,如图:
开发人员将云服务器AK/SK信息保存在js代码中,可以通过泄露信息完成对云服务器的接管。
在小程序js中泄露当前小程序的appId和appSecret,可利用工具通过appId和appSecret生成access_token,获取小程序用户信息、列表信息等,微信官方的说明文档已关闭小程序接口调试功能。推荐一下利用工具API-Explorer,现已支持微信公众号、微信小程序、企业微信、钉钉、飞书等平台的appId/appSecret接管功能,有其他需求评论区提。(工具下载链接见文末)
在js代码中搜索jwt,查找代码前后文是否存在jwtKey泄露,或尝试登录等操作获取一个jwtToken通过JWT密钥爆破可以爆破并构造用户cookie,以下是jwtToken工具具体利用方式如下:
在之前写过的一篇sessionKey漏洞发掘到漏洞利用的文章中已对该漏洞进行过漏洞挖掘复现,登录授权处系统申请获取微信授权,微信端返回用户会话密钥sessionKey,利用该密钥可对用户授权数据包进行加解密。
mapkey用于第三方网站调用显示及高德地图api进行定位、获取地理标签等服务,网站管理员注册申请的key值,并在系统对地图授权处调用key获取信息,由于地图API后台配置错误,导致ak泄露可以滥用,该mapkey每日调用存在使用上限,滥用会导致地图加载异常。
部分系统在开发过程中存在内网ip地址泄露,若当前系统存在SSRF漏洞,则可利用该漏洞遍历内网信息。
1. 文件上传接口
代码处搜索upload获取文件上传接口,利用脚本构造文件上传数据包对该接口进行文件上传测试:
提取网站js文件中的接口信息,构造数据包测试未授权漏洞(工具下载链接见文末):
版本更新后未使用但仍存在于代码中的接口,此类接口在系统中无对应功能按钮,但接口本身通过数据包构造仍可正常请求后台信息。例如在登录处,老系统存在注册接口,由于监管标准变更停止使用注册接口的功能按钮,但本身接口数据调用仍可正常实现。还有就是一些比较老的系统在开发之初,代码仅通过账号或账号密码校验,然后在系统漏洞整改过程中重构了代码采用账号、密码、验证码校验,但原有的老校验接口仍未删除,导致可以通过遍历接口来构造登录:
啊咧~这个其实来源于平时测试过程中的积累以及gpt使用经验。在批量对未授权接口进行发现过后,可以根据系统的类型来进行接口参数fuzz,例如金融保险行业的合同单号、保单号,在下载接口有遇到没有做随机数重命名的或者权限校验的,然后你可以根据保单编号尝试遍历一下或者根据规则生成一下,看能不能命中一个…就很随机才能遇到一个。
04 工具汇总
AK泄露利用工具:
https://github.com/mrknow001/aliyun-accesskey-Tools
appId/appSecret泄露利用工具:
https://github.com/mrknow001/API-Explorer
SessionKey泄露利用工具:
https://github.com/mrknow001/BurpAppletPentester
策划丨Cupid
美工丨molin
原文始发于微信公众号(千寻安服):面向JS漏洞挖掘
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论