工具推荐-js爬取工具
现在测试方向都偏向于从js中的接口来入手找到可以进的点,关于快速扫描js文件来发现敏感接口的工具有很多,下面的jjjjs就是其一
项目地址: GitHub - ttstormxx/jjjjjjjjjjjjjs: 爬网站JS文件,自动fuzz api接口,指定api接口(针对前后端分离项目,可指定后端接口地址),回显api响应
简介
针对webpack站点,爬取网站JS文件,分析获取接口列表,自动结合指纹识别和fuzz获取正确api根,可指定api根地址(针对前后端分离项目,可指定后端接口地址),根据有效api根组合爬取到的接口进行自动化请求,发现未授权/敏感信息泄露,回显api响应,定位敏感信息、敏感文件、敏感接口。支持批量模式。支持需认证接口自动尝试bypass。
使用
安装好依赖后,显示以下界面就可以正常使用了
python3 jjjjjjjjjjjjjs.py
模式有fuzz、spider和api,三个中只能任选其一
python3 jjjjjjjjjjjjjs.py http://xxx.com
直接后面加上url就爬取当前页面内容并拼接api进行访问
python3 jjjjjjjjjjjjjs.py http://xxx.com fuzz nobody flush
也可以用fuzz的方式的来查看,再spider模式没有查找到接口的情况下可以用fuzz模式来试试
python3 jjjjjjjjjjjjjs.py http://xxx.com api=/app nobody flush
当确认了确实存在某个api就可以用api模式
可在每个模式下加上bypass来对401、403进行测试;加上deep可以选择测试的深度爬到那一层,下面是作者给出的每个参数的含义可供对照使用
使用方式: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: localhost\nX-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: 展示更多信息
目标参数的位置固定在参数第一位,其他参数不限制出现位置