前言
当我们获取一个网站的url的时候,往往需要进行页面链接的爬取,js文件的爬取,从而获取更多的url和隐藏路径,以及一些api接口,可以快速的帮助我们进行渗透测试。这里给大家推荐两个工具
-
jjjjjjjjjjjjjs:一个可以发现未授权/敏感信息泄露/Url隐藏路径的API接口提取工具 -
JSFinder:是一款用作快速在网站的js文件中提取URL,子域名的工具
往期推荐
<a "https:="" href="https://mp.weixin.qq.com/s?__biz=Mzk1NzE0ODk3Nw==&mid=2247485366&idx=1&sn=d000689bc42cb4931657c9a081deebb5&scene=21#wechat_redirect">14w+poc,nuclei全家桶:nuclei模版管理工具+Nuclei
<a "https:="" href="https://mp.weixin.qq.com/s?__biz=Mzk1NzE0ODk3Nw==&mid=2247487982&idx=1&sn=57e323c285f66c87e46e496148307db9&scene=21#wechat_redirect">红队武器库VulToolsKit全家桶:图形化页面+自己额外添加的一些工具
<a "https:="" href="https://mp.weixin.qq.com/s?__biz=Mzk1NzE0ODk3Nw==&mid=2247487950&idx=1&sn=4b60b4b61a0837cc7aec108730a53ad0&scene=21#wechat_redirect">Apache Struts RCE (CVE-2024-53677),附多线程验证脚本+bp的poc
<a "https:="" href="https://mp.weixin.qq.com/s?__biz=Mzk1NzE0ODk3Nw==&mid=2247484721&idx=1&sn=a0bde50df32ae2df7f6e8fdb4a0ddb3a&scene=21#wechat_redirect">fscan全家桶:FscanPlus,fs,fscan适用低版本系统,FscanParser
<a "https:="" href="https://mp.weixin.qq.com/s?__biz=Mzk1NzE0ODk3Nw==&mid=2247484940&idx=1&sn=b0a474c8b4402ee30a75d1898e56a0f1&scene=21#wechat_redirect">自动爬取url地址,检测sql注入漏洞,sqlmc安装+使用
<a "https:="" href="https://mp.weixin.qq.com/s?__biz=Mzk1NzE0ODk3Nw==&mid=2247484761&idx=1&sn=29051417f3d284927769464f9914b709&scene=21#wechat_redirect">TestNet,安装+使用,可以代替灯塔
jjjjjjjjjjjjjs
简介
针对webpack站点,爬取网站JS文件,分析获取接口列表,自动结合指纹识别和fuzz获取正确api根,可指定api根地址(针对前后端分离项目,可指定后端接口地址),根据有效api根组合爬取到的接口进行自动化请求,发现未授权/敏感信息泄露,回显api响应,定位敏感信息、敏感文件、敏感接口。支持批量模式。支持需认证接口自动尝试bypass。
流程图
使用
环境:
python3.8
安装依赖:
pip3 install -r requirements.txt
使用方式
使用方式:python3 jjjjjjjs.py url|urlfile [fuzz|api] [noapi] [nobody|nofuzz] [cookie] [header] [danger] [bypass] [output] [thread] [proxy] [flush] [deep]
url|file: 目标url
fuzz: 自动fuzz接口
api: 用户指定api根路径 fuzz|api e.g. api=/jeecg-boot 或 api=http://api.test.com/root
noapi: 排除输入的指定api e.g. noapi=/system,/worker,/api
nobody: 禁用输出响应body nobody|nofuzz
nofuzz: 仅获取有效api,无后续响应获取
cookie: 设置cookie e.g. cookie='username=admin'
header: 设置header e.g. header='X-Forwarded-For: localhostnX-Access-Token: eyJxxxxx'
danger: 解除危险接口限制
bypass: 对500 401 403 进行bypass测试
output: 输出到文件 (txt) e.g. output='dest.txt'
thread: 线程数 e.g. thread=200
proxy: 设置代理 (仅指定proxy时, 自动设置代理到http://127.0.0.1:8080) e.g. proxy='http://127.0.0.1:8080'
flush: 清除项目历史记录, 重新爬取
deep: 深度模式(一般不需要开启), 开启后爬取深度上限:URL 2层 JS 3层,同源URL 3层, 同源JS 5层
debug: 展示更多信息
目标参数的位置固定在参数第一位,其他参数不限制出现位置
❝
注意: 目标参数的位置固定在参数第一位,其他参数不限制出现位置
示例
爬取模式
python3 jjjjjjjjjjjjjs.py http://192.168.189.133:3000
fuzz模式 nobody
python3 jjjjjjjjjjjjjs.py http://192.168.189.133:3000 fuzz nobody
api模式 nofuzz
python3 jjjjjjjjjjjjjs.py http://192.168.189.133:3000 api nofuzz
api模式 nobody header
python3 jjjjjjjjjjjjjs.py http://192.168.189.133:3000/ api nobody header='X-Access-Token:eyJxxx'
bypass模式 自动实施常见bypass
fuzz模式 nobody bypass
python3 jjjjjjjjjjjjjs.py http://192.168.189.133:3000/ fuzz nobody bypass
danger模式 解除危险接口限制
python3 jjjjjjjjjjjjjs.py http://192.168.189.133:3000/ fuzz nobody danger
JSFinder
JSFinder is a tool for quickly extracting URLs and subdomains from JS files on a website.
JSFinder是一款用作快速在网站的js文件中提取URL,子域名的工具。
提取URL的正则部分使用的是LinkFinder
JSFinder获取URL和子域名的方式:
Blog: https://threezh1.com/
更新说明
-
增加油猴脚本用于在浏览器上访问页面时获取域名与接口,具体可见:https://github.com/Threezh1/Deconstruct/tree/main/DevTools_JSFinder
用法
-
简单爬取
python JSFinder.py -u http://www.mi.com
这个命令会爬取 http://www.mi.com 这单个页面的所有的js链接,并在其中发现url和子域名
返回示例:
url:http://www.mi.com
Find 50 URL:
http://api-order.test.mi.com
http://api.order.mi.com
http://userid.xiaomi.com/userId
http://order.mi.com/site/login?redirectUrl=
...已省略
Find 26 Subdomain:
api-order.test.mi.com
api.order.mi.com
userid.xiaomi.com
order.mi.com
...已省略
-
深度爬取
python JSFinder.py -u http://www.mi.com -d
深入一层页面爬取JS,时间会消耗的更长。
建议使用-ou 和 -os来指定保存URL和子域名的文件名。 例如:
python JSFinder.py -u http://www.mi.com -d -ou mi_url.txt -os mi_subdomain.txt
-
批量指定URL/指定JS
指定URL:
python JSFinder.py -f text.txt
指定JS:
python JSFinder.py -f text.txt -j
可以用brupsuite爬取网站后提取出URL或者JS链接,保存到txt文件中,一行一个。
指定URL或JS就不需要加深度爬取,单个页面即可。
-
其他
-c 指定cookie来爬取页面 例:
python JSFinder.py -u http://www.mi.com -c "session=xxx"
-ou 指定文件名保存URL链接 例:
python JSFinder.py -u http://www.mi.com -ou mi_url.txt
-os 指定文件名保存子域名 例:
python JSFinder.py -u http://www.mi.com -os mi_subdomain.txt
-
注意
url 不用加引号
url 需要http:// 或 https://
指定JS文件爬取时,返回的URL为相对URL
指定URL文件爬取时,返回的相对URL都会以指定的第一个链接的域名作为其域名来转化为绝对URL。
-
截图
实测简单爬取:
python3 JSFinder.py -u https://www.jd.com/
URL:
Subdomain:
实测深度爬取:
python3 JSFinder.py -u https://www.jd.com/ -d -ou jd_url.txt -os jd_domain.txt
实际测试:
http://www.oppo.com
URL:4426 个
子域名:24 个
http://www.mi.com
URL:1043 个
子域名:111 个
http://www.jd.com
URL:3627 个
子域名:306 个
原文始发于微信公众号(泷羽Sec-尘宇安全):深层js文件爬取利用工具,jjjjjjjjjjjjjs工具+JSFinder工具使用,快速的帮助我们进行渗透测试
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论