AI大模型+N8N工作流的自动化安全测试流程初探

AI大模型+N8N工作流的自动化安全测试流程初探

在之前几篇文章中,搭建试用了几款目前市面上比较热门的开源AI自动化(辅助)渗透测试工具,效果参差不一,总的来说这几款工具离AI自动化安全测试离工程化、商业化还有一定的距离。本文参考已有的方案,基于Web越权漏洞这个常见的细分漏洞,利用AI大模型从零搭建一个自动化安全测试流程。

针对Web越权漏洞,其实已经很多很好用的辅助插件可以方便渗透测试人员进行测试,比如BurpSuite中的Autorize插件,只需要自定义需要替换的认证头即可被动测试。基于AI的测试插件也有很多,构建提示词对流量返回包进行对比分析省去人工核验的步骤。下面就基于水平越权且只有单个测试账号的场景,跑通AI自动化修改参数发包->AI自动比对响应包检测漏洞的流程。

我们的目标是做一个水平越权检测系统,AI修改参数,重放,AI比对响应得出漏洞检测结果,既然目标清晰,就可以编写提示词让AI IDE(本文使用的是Trae)n8n 工作流 教程将整个系统实现出来,参考提示词:

我想利用大模型技术开发一个被动式的Web越权漏洞检测系统:

1.传统的自动化越权漏洞检测原理为burpsuite的Authorize插件,通过被动式捕获http流量,对指定请求头进行替换如cookie,判断返回包长度大小是否一致,一致则存在越权漏洞;

2.我发现上述检测手段存在局限:一个是设置固定的替换请求头太过死板,只能检测浅层的越权漏洞,有些认证头如cookie参数非常多,应该根据参数名的含义和特征进行动态替换,如uid=1001可以替换为加uid=1(可能为管理员)或者随机减数如uid=998,或者phone=替换为phone=,这些都需要大模型识别参数含义进行动态替换;

3.另一个是只通过判断返回包长度大小过于局限,需要大模型根据返回包内容进行判断,防止误报;

4.另外为了节约token开销,需要过滤掉返回包静态资源如html、js、文件、图片等等,只判断返回格式为json、xml、txt获取其他有效数据返回格式的请求包

最终经过多轮对话,AI编写除了一个检测系统和一个存在水平越权的测试应用。

启动检测系统,检测系统启动在5000端口,监听了一个8080端口的被动代理,待测应用只需要代理这个端口即可。

点击启动扫描启动测试应用,这个测试应用的多个接口存在水平越权漏洞,如订单查询接口/api/user/orders?user_id=1可以看到使用检测系统成功检测出了这个接口的水平越权漏洞。

从上面流程可以看出,我们仅仅通过对话的方式,就让AI做出了一个”看起来可用”的Web水平越权漏洞检测系统,甚至对于如何修改参数、如何对比响应包的提示词都是AI自行编写的。但是全部使用AI完成这套流程存在一个比较麻烦的问题,就是维护和扩展只能依赖AI继续完成,自己和别人都无法很好的理解和扩展这段代码,最后可能变成一个”屎山”系统。

N8N和coze、Dify等系统一样,都是原生支持AI大模型的工作流平台,拥有非常丰富的组件和社区模板,用户只需要在工作台拖动组件进行配置就可以完成,这样的方式对于维护和扩展来说都非常简洁直观。

首先先写一个代理脚本,作为初步的数据过滤和格式化,减少并标准化发送到n8n进行AI处理的流量。

然后让AI生成N8N工作流json文件,导入到N8N平台经过调整之后流程如下。

最后只需在主机上运行一个代理即可,N8N的工作流就相当于一个AI AGENT,完成了所有的测试工作。

如此以来,就对整个检测系统进行了解耦,N8N作为检测中枢,其中的所有模块都可以复用,如流量解析、请求重放、去重、告警通知等,如果想要测试其他漏洞,只需修改AI节点中的提示词即可,从维护和扩展上来说,都非常的方便直观。对于测试人员来说,不需要知道检测系统怎么启动运行,只需要启动一个代理接入即可;对于设计人员来说,只需要在N8N工作流平台中进行流程设计即可。这样的模式对于集成到CI/CD会更有优势。

本文仅对水平越权漏洞的AI全自动化发现流程进行了研究,而且并未考虑系统通用性、性能、提示词设计等因素,只是一次实验性的探索。从结果上来说,流程上是跑通了但是还没有落地可用,但在设计过程中,确实感觉让AI融入现有流程的效果确实比让AI从零实现一个目标的效果要好得多,很多单位内部其实都有了一套安全测试(运营)流程(工作流),可以让AI集成到这一流程中,既能够真实的节省人力,也不至于有很大的学习维护成本。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/250628.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月13日 下午6:40
下一篇 2026年3月13日 下午6:40


相关推荐

关注全栈程序员社区公众号