[\[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里痛苦的查找任何接口、路径及参数。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/388ed286aff845ce8863640b37d4636e.png) 与众多JS Finder、URLFinder等比较火热的相关js、api挖掘工具类似,它们是非常优秀的工具,**而API剑凭借burp的特点而获得能力和优势。** 插件主页面截图: image ## 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 image 这个范围特别重要,建议谨慎考虑,否则容易扫到外太空去。 设置好范围后我们再看Setting选项卡 image 1. 允许主动对API请求 这个选项默认开,不建议关,否则API剑无法更深层提取数据 2. 是否使用原headers 默认开,如果想专门测试未授权api接口,可以把这个选项关掉,关掉后不会携带任何cookie或session等信息 3. 立即停止发送所有请求 默认关,避免遇到突发情况想暂停,用来刹车的,建议搭配第一个选项一起使用 4. 清除当前SiteMap所有数据 这个按钮用于清除API剑的Site Map中的所有站点数据 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d7e8eca0e2994a65b9bae2abb8554e69.png) 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 ✅