[\[EN-ReadMe\]](https://github.com/Sugobet/API_Sword/blob/main/%5BEN%5D-README.md) <------ please read this
# 微信公众号:APT250
## 秉着开源至上、交流学习的原则,API剑将于两周后(9月7日后)开源并同时上架Burp官方插件商店BApp Store,方便大家日后更新和使用,目前正在又官方进行代码审核中,相信不久后便能上线BApp Store
# [burp新经典插件] API剑 - 全自动深度 收集各种响应中的API接口
jar包在release,之后上架burp官方插件商店后也可从商店下载
## 前言
这个插件结合了我近期的工作内容和此前我的4万美刀赏金微软账户漏洞api的部分经验,
API剑开发者利用API剑已多次在项目上获得成果及通用0day,拥有此工具后,我再也没有手动从任何js里痛苦的查找任何接口、路径及参数。

与众多JS Finder、URLFinder等比较火热的相关js、api挖掘工具类似,它们是非常优秀的工具,**而API剑凭借burp的特点而获得能力和优势。**
插件主页面截图:
## API剑的主要功能
API剑 全自动防环路,从各种响应里提取指定范围内的api和js文件,然后递归深度提取api,主动请求api、js等有价值文件
api结果所见即所得,右边的窗口显示api的来源js,可以立刻从js里面获得api的参数信息,然后burp再ctrl + r一键过去测
它没有想象的那么复杂,API剑做的事情更多是为我们**减少了大量重复耗时且无趣的js、api、api参数搜寻工作。**
1. API剑捕获经过burp的范围内的流量,并从**http响应中提取绝大多数link**
2. API剑将对上一步提取的任意链接、路径进行清洗,并由**API剑判断后对API、JS等主动发起GET、POST请求**
3. API剑对上一步主动请求的响应进一步的处理,继续从响应中提取信息,并重复上一步的动作,**API剑具有防环路功能,无需担心死循环请求问题**
4. API剑对所有符合条件的API请求、响应,以及该API接口来源的js文件响应,全部推送到API剑的burp GUI中
5. API剑自动将所有相关请求添加至burp的target sitemap中,**您可在target的sitemap的分析等功能中尽情享受API剑带来的果实**
用户只需要启用API剑并设置一个“合理的范围”,接着在浏览器中继续点击web系统的各种功能,让所有流量经过burp,最终交给API剑做分析处理,API剑将会向您返回您想要的恶魔果实。
**考虑到opsec等操作安全风险,目前API剑不会主动fuzz参数,如果后续有需求再额外添加作为可选功能。**
## 如何使用?
`注意:插件需要运行在2024.7版本以上的burpsuite;(对于低于2024.7的版本,则需要手动在插件的settings页面将“是否使用原headers”功能关闭)`
API剑的使用非常的简单,
1. 将插件安装至burp 2024以后的版本,确保插件无任何报错
2. 为插件设置Scope
3. 打开浏览器确保浏览器的流量会通过burp
4. 进入目标网站,点击和测试任何在网站中看到的一切
5. 过一段时间后,从API剑的Sitemap检查果实
## API剑的设置
在Scope选项卡中,我们可以设置范围,范围可以是url、域名、ip
这个范围特别重要,建议谨慎考虑,否则容易扫到外太空去。
设置好范围后我们再看Setting选项卡
1. 允许主动对API请求
这个选项默认开,不建议关,否则API剑无法更深层提取数据
2. 是否使用原headers
默认开,如果想专门测试未授权api接口,可以把这个选项关掉,关掉后不会携带任何cookie或session等信息
3. 立即停止发送所有请求
默认关,避免遇到突发情况想暂停,用来刹车的,建议搭配第一个选项一起使用
4. 清除当前SiteMap所有数据
这个按钮用于清除API剑的Site Map中的所有站点数据

5. 启用主动http请求速率
限制每个请求的间隔时间
6. 是否在主动请求时额外添加自定义路径请求
启用该选项后,API剑会在拼接前为主URL添加指定的自定义路径后再进行拼接
7. 过滤掉非200的自定义响应码
8. 允许API剑主动从响应中寻找baseURL并主动对baseURL进行路径拼接
9. 添加自定义header字段:(自动覆盖已有的header字段)
10. 启用绕过危险接口访问(接口包含字符串则跳过)
11. 保存范围及所有设置
12. 是否在API接口后、参数前额外添加自定义路径
13. 线程数量控制
其它设置待开发和完善,如有任何想法建议和问题,可通过github上提issue反馈
## 致谢
感谢 `Microsoft`
感谢 我的`绿盟导师`
感谢 ` mil1ln`
感谢 `探姬`
感谢 所有在测试阶段为API剑提供宝贵意见和反馈的所有人
感谢以上所有人为API剑提供的一切支持!
## TODO
1. 收集一件梅花K的polo衫 ⬛️
2. 添加可选的base url路径fuzz ✅
3. 添加自定义响应码过滤 ✅
4. 添加API剑主动请求时,添加自定义base路径的选项 ✅
5. 优化了匹配策略,解锁API剑性能80% ✅
6. API剑主动请求优化,避免访问危险api ✅
7. 解决burp默认header不携带CT字段的问题 ✅
8. 优化响应table的tags宽度 ✅
9. 修复sitemap的ui闪烁问题 ✅
10. 添加自定义请求头可选功能 ✅
11. 添加响应列表的tags自动排序 ✅
12. 优化匹配策略 ✅
13. 优化代码块 ⬛️
14. 注册burp卸载处理 ✅
15. 全代码添加中英双语可阅读代码注释 ⬛️
16. gui添加中英双语切换功能 ✅
17. 优化ui造成burp卡顿、渲染问题 ✅
18. 添加保存范围和配置的功能 ✅
19. 添加主动http请求速率功能 ✅
20. 添加多线程功能 ✅
21. 添加接口后、参数前的自定义路径功能 ✅
22. 紧急修复因多线程导致防环逻辑失效问题 ✅
23. 修复自动排序存在显示出错问题 ✅
24. 优化API列表的UI,插入数据时,方向键不再会被打断施法 ✅
25. 彻底修复因多线程导致防环逻辑依然失效的bug ✅
26. 添加过滤器 ✅
27. 添加展开节点、收起所有节点 ✅
28. 清空site map功能优化 ✅
29. 优化cdn|跨站点中的js拼接逻辑,使其通过referer作为baseUrl ✅
30. 添加手动扫描功能,手动扫描会自动添加host到范围列表:burp中对某个请求体进行鼠标右键 -> 扩展 -> API Sword -> API Scan ✅