当前位置: 首页 > article >正文

工具推荐-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:    展示更多信息

目标参数的位置固定在参数第一位,其他参数不限制出现位置


http://www.kler.cn/a/429572.html

相关文章:

  • 关于Profinet 从站转 EtherNet/IP 从站网关详细说明
  • Android 调用系统服务接口获取屏幕投影(需要android.uid.system)
  • 【C++】多线程
  • 高级运维:shell练习2
  • 【Docker】保姆级 docker 容器部署 MySQL 及 Navicat 远程连接
  • 【Vue】mouted、created、computed区别
  • 【人工智能】GaussDB数据库技术及应用
  • Jmeter Address already in use: connect 解决
  • Debian11(pve) 使用.deb包 安装内核头文件
  • 数据分析特征标准化方法及其Python实现
  • 数据结构第一弹-哈希表
  • 调度系统:Prefect 结合 Couchbase SQL 执行和调度 SQL 查询脚本
  • 【C++】质因数分解问题详解与代码实现
  • Rust 错误处理(下)
  • 01-Chromedriver下载与配置(mac)
  • React 中为什么不直接使用 requestIdleCallback?
  • mongoDb的读session和写session权限报错问题
  • 获取pdf文件文字图片内容以及在PDF中插入图片
  • 【传感器技术】第4章 力敏传感器,弹性敏感元件的基本特性,应变式压力传感器,电阻应变片的温度补偿,压阻式压力传感器,压电式压力传感器
  • 磁盘系列基础知识(一):硬盘;IDE;ATA;SATA;AHCI;SCSI;SAS
  • 如何使用 SQL 语句创建一个 MySQL 数据库的表,以及对应的 XML 文件和 Mapper 文件
  • 服务器加固
  • 【教程】一键完成进入Docker并激活Conda虚拟环境
  • 探索单片机中存储器与寄存器的奥秘关联
  • 2025计算机毕设选题推荐【30条选题】【基础功能+创新点设计】
  • 云计算对定制软件开发的影响