这节课就是讲了,在渗透测试过程中,js文件是相当重要的,一般在加载网页时会返回很多js文件,可以对部分功能进行白盒测试,但是不是绝对的,如果逻辑业务代码是在后端那就没招,但是js代码中可以收集更多的url进行测试,有的站点js文件甚至会泄漏账号密码等敏感信息,所以介绍了下面一系列工具,对现有js进行分析取得有利信息,还可以暴力枚举js路径,拓宽攻击范围
| 标签 | 名称 | 地址 |
|---|---|---|
| FUZZ测试 | ffuf | https://github.com/ffuf/ffuf |
| 匹配插件 | Hae | https://github.com/gh0stkey/HaE |
| JS提取 | JSFinder | https://github.com/Threezh1/JSFinder |
| JS提取爬虫 | URLFinder | https://github.com/pingc0y/URLFinder |
| WebPack分析 | Packer-Fuzzer | https://github.com/rtcatc/Packer-Fuzzer |
| JS匹配插件 | BurpAPIFinder | https://github.com/shuanx/BurpAPIFinder |
| JS提取 | LinkFinder | https://github.com/GerbenJavado/LinkFinder |
| WebPack分析 | jjjjjjjjjjjjjs | https://github.com/ttstormxx/jjjjjjjjjjjjjs |
| JS提取爬虫 | FindSomething | https://github.com/momosecurity/FindSomething |
| JS匹配插件 | Unexpected_information | https://github.com/ScriptKid-Beta/Unexpected_information |
| FUZZ字典 | 字典集合 | https://wordlists.assetnote.io |
在日常渗透测试中,从JavaScript(JS)文件中提取信息是一项关键的步骤,以往有些案例就是通过JS文件中发现的敏感信息从而拿下重要的系统。在JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过浏览器的查看源代码获取部分源代码逻辑。从而获取URL,获取JS敏感信息,获取代码传参等,所以相当于JS开发的WEB应用大部分属于白盒测试(默认有大量源码参考),一般会在JS中寻找更多的URL地址,在JS代码逻辑(加密算法,APIkey配置,验证逻辑等)进行后期安全测试。
0、JS信息收集
接口URL提取
后端地址提取
敏感信息提取
配置信息提取
其他信息提取(环境,注释,用途等)
1、JS安全问题
源码泄漏,代码审计,JS逆向分析
未授权访问=JS里面分析更多的URL访问确定接口路径
敏感Key泄漏=JS文件中配置接口信息(云应用,短信,邮件,数据库等)
API接口安全=(代码中加密提交参数传递,更多的URL路径)
2、流行的Js框架有那些?
Vue NodeJS jQuery Angular等
3、如何判定JS开发应用?
插件wappalyzer
源程序代码简短
引入多个js文件
一般有/static/js/app.js等顺序的js文件
一般cookie中有connect.sid
4、如何获取更多的JS文件?
手工-浏览器搜索
半自动-Burpsuite插件
工具化-各类提取&FUZZ项目
5、如何快速获取价值信息?(手工分析,在加载的数据包/源码中搜索关键词)
src=
path=
method:”get”
http.get(“
method:”post”
http.post(“
$.ajax
案例:
0、人工JS中提取URL信息
1、从JS中提取到URL信息
2、从JS中提取到敏感信息
3、从JS中提取到配置信息
4、从JS中Fuzz提取到更多
5、WebPack打包器信息获取
#项目插件工具:
用来暴力枚举js接口的程序
用Go编写的快速 Web 模糊测试程序。
https://github.com/gh0stkey/HaE
HaE是一款网络安全(数据安全)领域下的框架式项目,采用了乐高积木式模块化设计理念,巧妙地融入了人工智能大模型辅助技术,实现对HTTP消息(包含WebSocket)精细化的标记和提取。其实就是一个bp插件,所有经过bp的流量,都会在规则库进行比对,如果命中了你自己配置的规则就会高亮显示,用来快速定位一些url泄漏信息泄漏等
https://github.com/Threezh1/JSFinder
一款用作快速在网站的js文件中提取URL,子域名的工具。老牌工具了,现在推荐使用下面的URLFinder
https://github.com/pingc0y/URLFinder(推荐)
URLFinder是一款快速、全面、易用的页面信息提取工具
用于分析页面中的js与url,查找隐藏在其中的敏感信息或未授权api接口
https://github.com/rtcatc/Packer-Fuzzer
针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具。
https://github.com/ttstormxx/jjjjjjjjjjjjjs
针对webpack站点,爬取网站JS文件,分析获取接口列表,自动结合指纹识别和fuzz获取正确api根,可指定api根地址(针对前后端分离项目,可指定后端接口地址),根据有效api根组合爬取到的接口进行自动化请求,发现未授权/敏感信息泄露,回显api响应,定位敏感信息、敏感文件、敏感接口。支持批量模式。支持需认证接口自动尝试bypass。
https://github.com/shuanx/BurpAPIFinder(推荐)
攻防演练过程中,我们通常会用浏览器访问一些资产,但很多未授权/敏感信息/越权隐匿在已访问接口过html、JS文件等,通过该BurpAPIFinder插件我们可以:
1、发现通过某接口可以进行未授权/越权获取到所有的账号密码、私钥、凭证
2、发现通过某接口可以枚举用户信息、密码修改、用户创建接口
3、发现登陆后台网址
4、发现在html、JS中泄漏账号密码或者云主机的Access Key和SecretKey
5、自动提取js、html中路径进行访问,也支持自定义父路径访问 …
https://github.com/GerbenJavado/LinkFinder
功能类似于JSFinder,但JSFinder好久没更新了。
https://github.com/momosecurity/FindSomething(这个个人觉得很好用)
该工具是用于快速在网页的html源码或js代码中提取一些有趣的信息的浏览器插件,包括请求的资源、接口的url,请求的ip和域名,泄漏的证件号、手机号、邮箱等信息。
https://github.com/ScriptKid-Beta/Unexpected_information
BurpSuite插件用来标记请求包中的一些敏感信息、JS接口和一些特殊字段,
防止我们疏忽了一些数据包,使用它可能会有意外的收获信息。