第20天:JS信息收集-Web应用JS架构URL提取数据匹配Fuzz接口WebPack分析自动化
1、信息收集-Web应用-JS提取分析-人工&插件*项目
2、信息收集-Web应用-JS提取分析-URL&配置&逻辑
标签 | 名称 | 地址 |
FUZZ测试 | ffuf | GitHub - ffuf/ffuf: Fast web fuzzer written in Go |
匹配插件(bp) | Hae | GitHub - gh0stkey/HaE: HaE - Highlighter and Extractor, Empower ethical hacker for efficient operations. |
JS提取 | JSFinder | GitHub - Threezh1/JSFinder: JSFinder is a tool for quickly extracting URLs and subdomains from JS files on a website. |
JS提取爬虫(推荐) | URLFinder | GitHub - pingc0y/URLFinder: 一款快速、全面、易用的页面信息提取工具,可快速发现和提取页面中的JS、URL和敏感信息。 |
WebPack分析 | Packer-Fuzzer | GitHub - rtcatc/Packer-Fuzzer: Packer Fuzzer is a fast and efficient scanner for security detection of websites constructed by javascript module bundler such as Webpack. |
JS匹配插件(推荐) | BurpAPIFinder | GitHub - shuanx/BurpAPIFinder: 攻防演练过程中,我们通常会用浏览器访问一些资产,但很多未授权/敏感信息/越权隐匿在已访问接口过html、JS文件等,该插件能让我们发现未授权/敏感信息/越权/登陆接口等。 |
JS提取 | LinkFinder | GitHub - GerbenJavado/LinkFinder: A python script that finds endpoints in JavaScript files |
WebPack分析 | jjjjjjjjjjjjjs | GitHub - ttstormxx/jjjjjjjjjjjjjs: 爬网站JS文件,自动fuzz api接口,指定api接口(针对前后端分离项目,可指定后端接口地址),回显api响应 |
JS提取爬虫 | FindSomething | GitHub - momosecurity/FindSomething: 基于chrome、firefox插件的被动式信息泄漏检测工具 |
JS匹配插件 | Unexpected_information | GitHub - ScriptKid-Beta/Unexpected_information: Unexpected information 是用于标记请求包中的一些敏感信息、JS接口和一些特殊字段的BurpSuite 插件。 |
FUZZ字典 | 字典集合 | https://wordlists.assetnote.io |
1、在日常渗透测试中,从JavaScript(JS)文件中提取信息是一项关键的步骤,以往有些案例就是通过JS文件中发现的敏感信息从而拿下重要的系统。
2、在JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过浏览器的查看源代码获取部分源代码逻辑。从而获取URL,获取JS敏感信息,获取代码传参等,所以相当于JS开发的WEB应用大部分属于白盒测试(默认有大量源码参考),一般会在JS中寻找更多的URL地址,在JS代码逻辑(加密算法,APIkey配置,验证逻辑等)进行后期安全测试。
一、JS信息收集哪些信息
1、接口URL提取
2、后端地址提取
3、敏感信息提取->如用户名、账号、密码等
4、配置信息提取
5、其他信息提取(环境,注释,网站用途等)
二、JS存在的安全问题
1、源码泄漏->代码审计,JS逆向分析
2、未授权访问->JS里面分析出更多的URL->访问url确定接口路径
3、敏感Key泄漏->JS文件中泄露的配置接口信息(云应用oss的ak\sk等信息,短信,邮件,数据库等)
4、API接口安全->代码中如何加密提交、参数如何传递,更多的URL路径
三、流行的Js框架有那些?
Vue NodeJS jQuery Angular等
四、如何判定JS开发应用?
1、插件wappalyzer进行指纹识别
2、源程序代码简短
3、通过检查前端源代码->引入多个js文件
一般有/static/js/app.js等顺序的js文件
一般cookie中有connect.sid
五、如何获取更多的JS文件?
1、手工-浏览器搜索
2、半自动-Burpsuite插件->如:BurpAPIFinder、Unexpected_information、Hae
3、工具化-各类提取工具->如:URLFinder、FindSomething插件、jjjjjjjjjjjjjs、Packer-Fuzzer->FUZZ模糊测试项目(ffuf工具)。
六、如何快速获取价值信息?
src=
path=
method:"get"
http.get("
method:"post"
http.post("
$.ajax
http://service.httppost
http://service.httpget
七、实操案例:
1、人工JS中提取URL信息
①访问:www.xiaodi8.com(此站点php传输,不是js前端传输)
②访问:my.sto.cn(此站点用的是js前端传输数据)
③手工信息收集JS
2、从JS中提取到URL信息
URLfinder工具的使用:https://github.com/pingc0y/URLFinder
3、从JS中提取到敏感信息、从JS中提取到配置信息
bp插件APIfinder、HaE使用:
①https://github.com/gh0stkey/HaE
作用:对bp的数据包进行分析,对数据进行筛选
②https://github.com/shuanx/BurpAPIFinder(bp插件,强烈推荐)
作用:与HaE不同的是,APIfinder是直接从JS里面分析
5、从JS中Fuzz提取到更多js文件
作用:在js文件所在的目录,发现更多的js文件,主要原理是根据字典来爆破,获取更多js文件;
案例:http://www.xiaodi8.com/zb_system/script/common.js
①该url的js文件所在的目录为:http://www.xiaodi8.com/zb_system/script
②对js文件所在的目录进行fuzz模糊测试
字典合集:https://wordlists.assetnote.io
6、WebPack打包器信息获取
工具1:https://github.com/rtcatc/Packer-Fuzzer
工具2:https://github.com/ttstormxx/jjjjjjjjjjjjjs(推荐)
这两款工具是具备分析功能,而souredetector(chrome的webpack检测插件)只具备下载器功能
八、工具大全
1、https://github.com/gh0stkey/HaE(bp插件,推荐使用)->bp2022年版本以上才可使用
作用:对bp的数据包进行分析,对数据进行筛选
2、https://github.com/shuanx/BurpAPIFinder(bp插件,强烈推荐)
作用:与HaE不同的是APIfinder是直接从JS里面分析
3、https://github.com/ScriptKid-Beta/Unexpected_information(bp插件)
4、https://github.com/pingc0y/URLFinder工具(强烈推荐)
5、https://github.com/GerbenJavado/LinkFinder(不推荐,了解即可)
功能类似于JSFinder,但JSFinder好久没更新了。
6、https://github.com/rtcatc/Packer-Fuzzer->webpack打包器
7、https://github.com/ttstormxx/jjjjjjjjjjjjjs(推荐)->webpack打包器
8、https://github.com/momosecurity/FindSomething(chrome插件,推荐)
该工具是用于快速在网页的html源码或js代码中提取一些有趣的信息的浏览器插件,包括请求的资源、接口的url,请求的ip和域名,泄漏的证件号、手机号、邮箱等信息。
9、https://github.com/ffuf/ffuf(FUZZ模糊测试)
用Go编写的快速 Web 模糊测试(FUZZ)程序
作用:在检测到js的目录下,继续爆破查找没有被发现的js,需要用到js字典来枚举