Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
API-SPY-API-PROBE — 一个强大的目录暴力破解工具,专为递归/多路操作、API发现与枚举、JS文件抓取以及列出API HTTP方法而设计,一条命令即可完成。这不仅仅适用于API,我的工具只是在API方面表现出色。 | Kitploit
工具/GitHubGitHub/austinjump-sec/api-spy-api-probe
侦察脚本与自动化Web应用程序漏洞利用API安全测试信息收集渗透测试网络爬虫
GitHubaustinjump-sec/api-spy-api-probe

API-SPY-API-PROBE

一个强大的目录暴力破解工具,专为递归/多路操作、API发现与枚举、JS文件抓取以及列出API HTTP方法而设计,一条命令即可完成。这不仅仅适用于API,我的工具只是在API方面表现出色。

查看仓库
512个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

API-SPY 🕵️👻

一款专为API侦察和渗透测试设计的高效目录暴力破解工具。可自动发现隐藏的API端点,执行递归子扫描,并探测HTTP方法以实现深度API枚举。

screenie work

特性

✨ 核心能力:

  • 🎯 使用基于字典的暴力破解快速发现端点
  • 🔄 自动对已发现端点进行递归子扫描
  • 🔍 HTTP方法探测(GET、POST、PUT、DELETE、PATCH、OPTIONS)
  • ⚡ 多线程扫描提升性能
  • 📊 智能状态码处理(200、401、403)
  • 🔗 交互式提示,选择性进行子扫描和探测
  • 🕷️ JavaScript抓取,搜索常见 /api/ 端点
  • 🪟 终端多路复用支持(tmux),用于并行操作
  • ⏱️ 自动跳过提示,可配置超时

安装

前提条件

  • Python 3.6+
  • requests 库
  • tmux(可选,用于 --split 参数)
  • xfce-terminal(用于Linux桌面环境)

安装步骤

root@kitploit:~
# 克隆仓库
git clone https://github.com/austinjump-sec/API-SPY.git
cd API-SPY

# 安装依赖
pip install requests

# 赋予脚本执行权限(可选)
chmod +x apispy.py apiprobe.py

用法

基本语法

root@kitploit:~
python3 apispy.py <baseUrl> <wordlist> [OPTIONS]

必需参数

参数描述
<baseUrl>目标URL(例如 http://example.com 或 http://api.example.com)
<wordlist>包含端点的字典文件路径(每行一个)

可选参数

示例

默认设置下的基本扫描(单线程)

root@kitploit:~
python3 apispy.py http://api.example.com wordlist.txt

10线程的多线程扫描

root@kitploit:~
python3 apispy.py http://api.example.com wordlist.txt -t10

使用tmux进行并行操作

root@kitploit:~
python3 apispy.py http://api.example.com wordlist.txt -t5 --split

以更高线程数子扫描特定URL

root@kitploit:~
python3 apispy.py http://api.example.com/v1 wordlist.txt -t20

工作原理

阶段一:常见API端点测试

工具首先测试一组预定义的常见API路径:

  • api、v1、v2、api/v1、api/v2、graphql、rest

阶段二:字典暴力破解

  • 从你的字典文件中加载端点(忽略以 # 开头的注释行)
  • 使用HTTP GET请求测试每个端点
  • 多线程执行以实现更快的扫描
  • 识别响应状态码为 200、401、403 的可用端点

阶段三:交互式子扫描(可选)

当发现端点时,系统会提示:

root@kitploit:~
'-> 子扫描 <url>?(y/n) [5秒后自动跳过]:
  • 选择 y/yes 以使用相同字典递归扫描该端点
  • 自动在新终端或tmux分屏窗口中启动
  • 若5秒内无输入则自动跳过

阶段四:HTTP方法探测(可选)

子扫描后,系统会提示:

root@kitploit:~
'-> 探测 <url> 上的方法?(y/n) [5秒后自动跳过]:
  • 启动 apiprobe.py,在发现的端点上测试HTTP方法
  • 测试的方法:GET、POST、PUT、DELETE、PATCH、OPTIONS
  • 彩色输出(绿色表示200,黄色表示与认证相关的错误)
  • 显示响应大小和 Allow 头部提示

输出解读

API-SPY主脚本

root@kitploit:~
[+] 发现URL: http://api.example.com/v1            ← 200 OK(可访问)
    '-> 子扫描 http://api.example.com/v1?(y/n) [0秒后自动跳过]:
[-] 超时:已跳过对 http://api.example.com/v1?的提示
    '-> 探测 http://api.example.com/v1 上的方法?(y/n) [4秒后自动跳过]:
[-] 发现URL但未获许可(403错误):...      ← 禁止访问但存在
[-] 发现URL但未获许可(401错误):...      ← 需要认证

API-Probe脚本

root@kitploit:~
[+] GET     -> 状态: 200 OK(大小: 1024)
[-] POST    -> 状态: 405(大小: 0)
[头部提示] Allow: GET、HEAD、OPTIONS

字典格式

创建一个简单的文本文件,每行一个端点:

root@kitploit:~
admin
users
api/users
v1/products
v2/customers
/api/v1/auth
/graphql
search
data
config

注意: 以 # 开头的行被视为注释并被忽略。

推荐字典

与API-SPY配合使用的流行API字典:

  • SecLists - API端点
  • Assetnote API字典
  • FuzzDB API路由

性能建议

线程数指南

  • 1-5线程:保守,检测风险低,速度慢
  • 5-20线程:性能和隐蔽性均衡
  • 20-50线程:激进扫描,结果更快
  • 50-150线程:最高速度(可能触发WAF/IDS)
root@kitploit:~
# 隐身模式(低线程数)
python3 apispy.py http://target.com wordlist.txt -t3

# 均衡模式
python3 apispy.py http://target.com wordlist.txt -t15

# 激进模式
python3 apispy.py http://target.com wordlist.txt -t50

超时行为

  • 交互式提示在 5秒 后自动跳过
  • 适用于对大型目标列表进行无人值守扫描
  • 可在源代码中修改 timeout=5 以自定义

故障排除

"字典未找到"

确保字典路径正确且文件存在:

root@kitploit:~
ls -la /path/to/wordlist.txt

脚本名称错误

当进行子扫描时,请确保:

  • 主脚本命名为:apispy.py
  • 探测脚本命名为:apiprobe.py
  • 两者位于同一目录

tmux分屏窗口无法工作

如果 --split 失败:

  • 安装tmux:sudo apt install tmux
  • 确保你在tmux会话中运行:tmux new-session -s scan
  • 自动回退到xfce-terminal

所有端点显示"连接失败"

  • 验证基础URL是否正确且可访问
  • 检查防火墙/代理设置
  • 确保目标服务正在运行
  • 手动测试:curl http://your-url/

未找到结果

  • 验证字典是否包含相关端点
  • 检查目标是否返回除200/401/403以外的状态码
  • 尝试使用更少的线程以避免超时
  • 在 check_status() 函数中增加请求超时时间

安全考虑

⚠️ 法律与道德:

  • 仅测试你拥有或已获得明确书面许可的系统
  • 在大多数司法管辖区,未经授权访问计算机系统是非法的
  • 负责任地使用API-SPY进行授权渗透测试和安全研究
  • 尊重速率限制,不要执行拒绝服务攻击

最佳实践

  1. 获取授权:在测试前获得书面许可
  2. 使用合适的字典:为目标选择相关的端点
  3. 监控检测:留意WAF/IDS拦截或账户锁定
  4. 尊重速率限制:对生产系统使用较低的线程数
  5. 记录发现:记录所有发现的端点以便报告

高级用法

自定义超时值

编辑源代码以调整超时值:

root@kitploit:~
def ask_subscan(url, wordlist, timeout=10):  # 从5秒改为10秒

过滤结果

创建针对特定API路径的字典:

root@kitploit:~
# 仅管理员端点
grep -i "admin" full-wordlist.txt > admin-wordlist.txt

# 仅v1 API
grep "v1" full-wordlist.txt > v1-wordlist.txt

批量扫描

使用循环扫描多个目标:

root@kitploit:~
for target in http://target1.com http://target2.com http://target3.com; do
    python3 apispy.py "$target" wordlist.txt -t10
done

架构

apispy.py(主扫描器)

  • 编排扫描工作流
  • 管理线程和并发请求
  • 处理交互式提示和终端生成
  • 协调子扫描和探测操作

apiprobe.py(方法探测器)

  • 测试已发现端点上的HTTP方法
  • 报告方法的可用性和状态码
  • 从HTTP头部提取提示信息
  • 提供端点能力评估

贡献

欢迎贡献!请随意:

  • 报告错误和问题
  • 建议新功能
  • 改进文档
  • 优化性能

免责声明

本工具仅用于教育目的和授权的安全测试。用户有责任在扫描任何系统前确保已获得适当授权。未经授权访问计算机系统是非法的。

许可证

本项目按原样提供,仅供安全研究和授权测试使用。


创建者: austinjump-sec
仓库: austinjump-sec/API-SPY

下载工具
参数描述
--t<number>线程数(最大150,默认:1)
--split使用tmux分屏窗口而非新终端窗口
--debug显示原本隐藏的错误信息
--loud显示所有消息,包括正确和错误的,并高亮任何未返回404的内容
--js扫描JavaScript文件,并抓取发现的文件以查找常见硬编码的API端点