前端js打点
什么是js渗透测试
在Javascript中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过浏览器的查看源代码获取真实的点。获取URL,获取Js敏感信息,获取代码传参等,所以相当于JS开发的WEB应用属于白盒测试(默认有源码参考),一般会在JS中寻找更多的URL地址,在IS代码逻辑(加密算法,APIkey配置,验证逻辑等) 进行后期安全测试。
后端语言:php java python .NET 等等
前端语言:javascript js框架
从JS文件中能找到什么?
会增加攻击面(URL、接口)
敏感信息(用户名密码、ak/sk、token/session)
代码中的潜在危险函数(eval、dangerallySetInnerHTML)
流行的JS框架(从相关框架中寻找历史漏洞)(Vue、NodeJS、jQuery、Angular、React等)
手动寻找隐藏接口/url
在源代码处搜索以下关键词
src= # 链接地址
path= # 路径
method:“get”
method:“post”
http.get("
http.post("
$.ajax
在浏览器的源码处ctrl+shift+f全局搜索关键词,提取url
半自动化(插件)
浏览器插件findsomething
burp插件
hae
burp自带的 目标>>相关工具>>搜索脚本
全自动化(工具)
使用工具自动化提取隐藏接口
JSFinder
下载路径:Threezh1/JSFinder: JSFinder is a tool for quickly extracting URLs and subdomains from JS files on a website.
URLFinder
下载路径:pingc0y/URLFinder: 一款快速、全面、易用的页面信息提取工具,可快速发现和提取页面中的JS、URL和敏感信息。
下载好后编译,需要go环境
下载好go环境,先更改go代理
go env -w GOPROXY=https://goproxy.cn,direct
避免三方库安装失败
windows下编译命令:go build -ldflags “-s -w” -o ./URLFinder-windows-amd64.exe
单个url命令
显示全部状态码
URLFinder.exe -u http://www.baidu.com -s all -m 3显示200和403状态码
URLFinder.exe -u http://www.baidu.com -s 200,403 -m 3
https://wordlists.assetnote.io
FUZZ 模糊测试js文件
字典网站
Assetnote Wordlists
ffuf工具
它可以帮助你在短时间内发现网站的隐藏目录、文件和子域名,从而找到潜在的安全漏洞。
ffuf/ffuf: Fast web fuzzer written in Go
FFUF的主要功能
FFUF 的功能非常丰富,以下是它的一些主要用途:
- 目录发现:可以在URL的任何位置进行模糊测试。
- 子域名发现:快速找到网站的子域名。
- HTTP方法模糊测试:支持使用各种HTTP方法进行测试。
指令
• -u url地址
• -w 设置字典
• -c 将响应状态码用颜色区分,windows下无法实现该效果。
• -t 线程率,默认40
• -p 请求延时: 0.1、0.2s
• -ac 自动校准fuzz结果
• -H Header头,格式为 “Name: Value”
• -X HTTP method to use
• -d POST data
• -r 跟随重定向
• -recursion num 递归扫描
• -x 设置代理 http 或 socks5://127.0.0.1:8080
• -s 不打印附加信息,简洁输出
• -e 设置脚本语言 -e .asp,.php,.html,.txt等
• -o 输出文本
• -of 输出格式文件,支持html、json、md、csv、或者all
基础用法
-u 扫描目标,-w字典,速度非常快,7000的字典只用了三秒钟
ffuf -u "http://192.168.242.62/dvwa/FUZZ" -w ./top7000.txt
递归扫描
值得注意的是字典内开头不要有 / 不然不会进行递归的,当然,也有可能是我演示时候FUZZ前加了 / ,我也不想再做实验了,随便写上吧。去除 / 可使用sed -i ‘s///’ /dict.txt 替换掉开头第一个斜杠
ffuf -u "http://192.168.242.62/FUZZ" -w test.txt -x "http://127.0.0.1:8080" -recursion "2"
进阶用法
- -maxtime 在有限的时间内完成测试,不论是否完成都将终止,单位为s, 尽量使用**-maxtime-job与-recursion**递归扫描一起使用,用于指定每个目录递归扫描时间,避免扫描时间过长
ffuf -w dict.txt -u http://website.com/FUZZ -maxtime 60
匹配输出
ffuf提供了仅获取具有特定特征的状态码、行数、响应大小、字数以及匹配正则表达式的模式进行响应输出。
- -mc :指定状态代码。
- -ml:指定响应行数
- -mr: 指定正则表达式模式
- -ms:指定响应大小
- -mw:指定响应字数
例子:匹配响应状态码为200,301进行输出
ffuf -w dict.txt -w http://website.com/FUZZ -e .aspx,.html -mc 200,301
过滤输出(FILTER)
- -fw : 按字数过滤
- -fl :按行数过滤
- -fs :按响应大小过滤
- -fc : 按状态码过滤
- -fr : 按正则表达式模式过滤
Packer-Fuzzer
一款针对webpack等前端打包工具所构造的网站
下载链接:https://github.com/rtcatc/Packer-Fuzzer
结果文件在reports目录里
版权归原作者 网安_秋刀鱼 所有, 如有侵权,请联系我们删除。