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

swaggerHole:针对swaggerHub的公共API安全扫描工具

关于swaggerHole

swaggerHole是一款针对swaggerHub的API安全扫描工具,该工具基于纯Python 3开发,可以帮助广大研究人员检索swaggerHub上公共API的相关敏感信息,整个任务过程均以自动化形式实现,且具备多线程特性和管道模式。

工具要求

Python 3

pip3

类Linux操作系统的安装命令如下:

sudo apt install python3
sudo apt install python3-pip

工具安装

pip安装

该项目目前已托管至PyPI,可以直接使用下列命令安装swaggerHole:

pip3 install swaggerhole

源码安装

除此之外,广大研究人员还可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/Liodeus/swaggerHole.git

然后切换到项目目录下,运行工具安装脚本即可:

cd swaggerHolepip3 install .

工具使用

下图所示为swaggerHole的工具帮助和参数选项:

使用命令样例:

swaggerhole [-h] [-s SEARCH] [-o OUT] [-t THREADS] [-j] [-q] [-du] [-de]

参数解析

-h, --help:显示工具帮助信息和退出;-s SEARCH, --search SEARCH:搜索语句;-o OUT, --out OUT:设置输出目录;-t THREADS, --threads THREADS:设置要使用的运行线程数量 (默认为25)-j, --json:使用JSON格式输出;-q, --quiet:静默模式,移除Banner;-du, --deactivate_url:不激活URL过滤功能(会增加假阳性);-de, --deactivate_email:不激活email过滤功能(会增加假阳性);

工具使用演示

搜索目标域名相关的API敏感信息

swaggerHole -s test.comecho test.com | swaggerHole

搜索目标域名相关的API敏感信息(输出JSON数据)

swaggerHole -s test.com --jsonecho test.com | swaggerHole --json

搜索目标域名相关的API敏感信息(速度提升)

swaggerHole -s test.com -t 100echo test.com | swaggerHole -t 100

工具输出

常规输出

Finding_Type - Finding - [Swagger_Name][Date_Last_Update][Line:Number]

JSON输出

{"Finding_Type": Finding, "File": File_path, "Date": Date_Last_Update, "Line": Number}

许可证协议

本项目的开发与发布遵循GPL-3.0开源许可协议。

项目地址

swaggerHole:【GitHub传送门】

参考资料

Build, Collaborate & Integrate APIs | SwaggerHub

相关文章:

  • 【OPENMV】学习记录 (持续更新)
  • Go 实现的小型web server,可以通过调用api来控制和消耗 CPU 占比。通常用于测试系统负载和性能。
  • 电商API在维护数据安全与合规性中的重要性
  • 【Linux】Centos7升级内核的方法:yum更新(ELRepo)
  • 一键生成迷宫-Word插件-大珩助手新功能
  • RabbitMQ简单使用方法,以异步处理日志为例:
  • 西门子PLC学习之数据块的单个实例,多重实例与参数实例间的区别
  • codeforces round 949 div2
  • 【Linux】进程2——管理概念,进程概念
  • c++调用动态库LNK2019无法解析的外部符号LNK1120无法解析的外部命令
  • 【C++】植物大战僵尸杂交版自动存档——防闪退存档消失
  • 【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
  • 常见的api:Runtime Object
  • day 37 738.单调递增的数字
  • Springboot引入redis启动报错问题的解决
  • 自己简单写的 事件订阅机制
  • EOS是什么
  • EventListener原理
  • happypack两次报错的问题
  • iBatis和MyBatis在使用ResultMap对应关系时的区别
  • IP路由与转发
  • javascript数组去重/查找/插入/删除
  • JavaScript新鲜事·第5期
  • mysql中InnoDB引擎中页的概念
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • vue-cli在webpack的配置文件探究
  • Vultr 教程目录
  • 关于Flux,Vuex,Redux的思考
  • 听说你叫Java(二)–Servlet请求
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • ​sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块​
  • #define
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (2)空速传感器
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (SpringBoot)第二章:Spring创建和使用
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • (转)VC++中ondraw在什么时候调用的
  • (转)关于多人操作数据的处理策略
  • (转)视频码率,帧率和分辨率的联系与区别
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • .htaccess 强制https 单独排除某个目录
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • @Autowired @Resource @Qualifier的区别
  • @GlobalLock注解作用与原理解析
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题