今天无意看到Aedoo_师傅在freebuf发的两篇js审计文章,我也想写写这块,这玩意空缺还是很大的。
Js到暴露系统服务接口
我们知道,登录后进入系统->系统加载菜单、功能点这些实现依赖接口,这些类型有结尾为getxxx;同时也需要加载js来传输这些路径,因为我们是和前端交互,每次点击触发需要函数,函数->接口实现需要js。
所以,大多数系统进入系统优先加载js、css这些静态文件,而这些静态文件大多是不鉴权的,我们就可以利用这点来进行fuzz,目的就是发现未授权接口。
0x01. 案例1
菜单类:,我们知道,后台通常存在登录地址,登录地址不鉴权,根目录为/manager,那它会优先加载js,然后我们请求这个地址,他为了加载路由,会加载全局的js或者一些相关的js。
这时候,我们拿到了/manage/static/js/manifest.xxxx85a86ca.js
利用jsfinder等工具通过正则提取path
发现了ewebeditor,后续通过漏洞getshell
0x02.案例2
有些师傅玩Js能404进行fuzz,这完全看字典,fuzz-js文件纯属看运气
同样的思路延申到绕过,有的站点会提供login.js
返回对应状态码会跳转到main,这时候又会加载全局js。
可以看到发现shiro框架,又有可玩的点了...
通过加载的路由又发现了对应的js文件index/js/mainIndex.js
后续就没啥写了...
0x03 案例3
案例1的再延申,如果你注意的话会发现,加载这些js是为了传输菜单或者接口而触发的函数。那么,是不是只要存在功能的的地方就能js-fuzz呢?
- 找回密码
- 发送验证码
- 加载全局路由
- 注册
- 验证码登录
- 逻辑跳转
- 越权跳转
Tips: 这里只单独谈了js的一些fuzz,目的就是找到更多接口,当然接口是否能访问和它对应的菜单层数有关
目前通常在二级目录/xxxapi/后续拼接对应接口,拼接返回404即不在这一层目录下。这里也有很多细节,和Aedoo_师傅写的差不多,可以参考他如何从404fuzz->Ssrf
https://www.freebuf.com/vuls/265163.html
原理都是一样的,利用加载路由或者接口需要触发函数,路径写在了js文件中。
字典
https://github.com/danielmiessler/SecLists/blob/master/Discovery/Web-Content/SVNDigger/cat/Language/js.txt
原文始发于微信公众号(迪哥讲事):echo版| 看我如何玩转Js-fuzz
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论