APIFinderPlus:JS响应信息提取工具内测
2024-9-19 19:35:52 Author: mp.weixin.qq.com(查看原文) 阅读量:9 收藏

虽然很久没有发文章了,但是NOVASEC还在。
我的实战记录没什么好写的,常就是
寻找脆弱点|弱口令上传RCE|捡到源码审计RCE->嘻嘻没有弱口令|马被杀了|服务器关了|管理员跑了—>不嘻嘻
没有啥特殊的技巧,不像大家的那么跌宕起伏。
所以聊聊其他的。
0x01 JS信息提取
JS信息提取一直是前台信息搜集中的不可避免的话题,主要提取的数据有两个方面:
1、敏感的信息
2、URL|URI路径
我比较习惯使用@Key大佬的HAE插件进行敏感信息的提取,并且HAE的URL|URI提取规则,目前也非常完善。
https://github.com/gh0stkey/HaE
缺点就是HAE提取的路径还需要自己拼接进行测试,比较繁琐。
其他的路径提取工具要么就是只进行PATH提取功能、要么就是拼接方式过于粗糙(笛卡尔积)拼接。
因此,一直想编写一个程序,用于获取响应中的URI和URL、然后能够自动化的判断PATH的前缀,尽可能减少FUZZ请求的数量,但由于时间精力的问题一直没有落地。
这次@shaun大佬编写了一个BurpAPIFinder插件,使用的是定时任务的处理方式,这个方式在某个方面让我觉得很适合动态的URL分析。然后一直在开发过程中提供一些功能建议。
https://github.com/shuanx/BurpAPIFinder
但是由于逻辑设计想法上的差异,导致一直没有达到我要的完美效果,最终选择借鉴BurpAPIfinder的UI和规则配置方案重新进行功能开发。
由于借鉴了APIFinder的处理逻辑,所以我把这个项目命名为【APIFinderPlus】以示尊敬。
0x02 设计方案

定时任务线程:- 查询数据库 ReqDataTable 表  - 是否存在未分析的 消息    - 根据规则配置 匹配 提取 请求|响应中的敏感信息和URL、PATH      - 分析结果存入数据库 AnalyseUrlResultTable 表
- 查询数据库AnalyseUrlResultTable 表    - 将 AnalyseUrlResultTable 表中的新结果按照RootUrl分类 插入到 AnalyseHostResultTable 表
- autoPathsToUrlsIsOpen 开启自动基于路径计算URL功能 (默认关闭、支持手动) - 查询数据库 RecordPathTable - 检查是否存在没有加入到 网站路径树 的有效请求PATH - 根据已记录的URL路径计算/更新Pathree - 分析结果存入 PathTree 表 - 查询数据库 联合分析 PathTreeTable 和 AnalyseHostResultTable 表 - 检查是否存在已经更新的PathTree 但是还没有重新计算过PATH URL的数据 - 根据已更新的Pathree计算新的PATH可能的前缀 - 分析结果存入 AnalyseHostResultTable 的 PATH计算URL
- autoRecursiveIsOpen 开启自动访问未访问的URL - 查询数据库 AnalyseHostResultTable 表 - 判断是否URL是否都已经被访问      - 对未访问URL构造HTTP请求
这里面有两个术语:
RootUrl 根URL 网站的协议://Host:Port部分PathTree 路径树 用于记录每个网站的目录信息。
0x03 插件效果
目标是做一个比较全面的API挖掘工具、减少手动拼接path的提取测试、补充无法自动处理的操作。
1、支持 自动提取响应信息中的敏感信息、URL、URI信息.2、支持 自动基于已知路径信息计算提取 PATH 对应的可能URL.3、支持 自动访问挖掘出来的 URL 进行递归式的信息提取.4、支持 对webpack的js的简单格式的拼接提取(限制格式,但准确度高)5、支持 配置自动请求URL时的方法和请求体参数.

支持简单webpack格式示例
目前暂时无法实现的TODO:
1、实现webpack.js的自动解析.2、将插件独立剥离为被动监听插件.
目前程序存在的缺陷:由于使用了高频率的定时任务进行PathTree更新、未访问URL检查、自动URL刷新,导致这些功能的全自动开启对PC的性能有一定要求。
0x04 总结
生活忙碌,经过好几个月断断续续的开发和内测,程序已经基本完善。
最终效果和想象的还是有亿点差异,想的是开启扫描就打穿,实际是扫描完成也不一定有结果,只能作为捡漏工具。
如果您也对当前插件描述的功能存在需求和想法,可以通过【联系下方二维码】或【NOVASEC开源工具交流群】联系我进行内测
0x99 免责声明

在学习本文技术或工具使用前,请您务必审慎阅读、充分理解各条款内容。

1、本团队分享的任何类型技术、工具文章等文章仅面向合法授权的企业安全建设行为与个人学习行为,严禁任何组织或个人使用本团队技术或工具进行非法活动。

2、在使用本文相关工具及技术进行测试时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。如您仅需要测试技术或工具的可行性,建议请自行搭建靶机环境,请勿对非授权目标进行扫描。

3、如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。

4、本团队目前未发起任何对外公开培训项目和其他对外收费项目,严禁任何组织或个人使用本团队名义进行非法盈利。

5、本团队所有分享工具及技术文章,严禁不经过授权的公开分享。

如果发现上述禁止行为,我们将保留追究您法律责任的权利,并由您自身承担由禁止行为造成的任何后果。

END

如您有任何投稿、问题、需求、建议

NOVASEC公众号后台留言

或添加 NOVASEC 联系人

感谢您对我们的支持、点赞和关注

加入我们与萌新一起成长吧!

本团队任何技术及文件仅用于学习分享,请勿用于任何违法活动,感谢大家的支持!


文章来源: https://mp.weixin.qq.com/s?__biz=MzUzODU3ODA0MA==&mid=2247489715&idx=1&sn=ae0620567c17cd5257cd95cec4b5141b&chksm=fad4c5a4cda34cb2bcd479d28b075d78ebb8cc15e429bc7ba8f2501fd49263820d12bd8492bd&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh