我把一个目标丢给AI找洞,它给了我一个RCE——也给了27个幻觉"

admin 2026-10-16 02:20:32 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

我把一个目标丢给 AI 找洞,它给了我一个 RCE——也给了 27 个幻觉

原创

奋斗的小浪
奋斗的小浪

船山信安

2026年10月9日 22:42
湖南

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

实战笔记 · PENTEST × AI 安全

我把一个目标丢给 AI 找洞,它给了我一个 RCE——也给了 27 个幻觉

去年跟一个甲方做授权测试,我把域名一次性丢给几个大模型,让它们各自独立找脆弱点。三小时,四份报告,汇总去重后有 28 个可疑点。其中一个是真 RCE。剩下 27 个,全是幻觉。

这篇不聊怎么\"打进去\"——那部分在授权报告里,脱敏后也跟各位没啥关系。我想复盘的是另一件事:AI 在渗透里到底帮得上忙,还是只会给你一堆看起来很对的废话;以及,一个 RCE 从\"能利用\"到\"被拦下\",边界到底画在哪。

一句话先立住:AI 是放大器,不是替代者。你底子越厚,它放得越大;你啥也不懂,它就把你往坑里带得越深。

01开局:让 AI 做侦察,它比人快,但会乱报

信息收集是 AI 最舒服的活。子域名、端口、指纹、暴露面,这类\"体力活\"它干得比人快。我习惯把自动化工具跑出来的原始结果喂给它,让它先归个类、标个优先级。

先用工具把暴露面拉出来,别让 AI 瞎编

subfinder -d example.com | httpx -silent | nuclei -t tech-detect

# 把结果喂给模型,让它按\"高危/中危/待确认\"标

# 它会回一堆\"疑似命令注入\"\"疑似反序列化\"

问题立刻来了:它标出来的\"高危\",一半连漏洞类型都说不准。一个返回 500 的接口,它能给你写成\"疑似 SQL 注入\",实际上只是后端没接住空参数。这就是幻觉的第一种——把\"异常\"当成\"漏洞\"。

02卡点:它给的 payload,十个里九个跑不通

真正卡住我的,不是找点,是验证。AI 给的利用载荷,十个里九个跑不通。不是它不会写语法,是它不知道目标的真实环境。

举个真事:一个搜索框,后端用模板渲染。我让模型给 SSTI 的测试串,它甩给我一串 Jinja2 的 {{7\\*7}}。可目标跑的是另一套引擎,那串东西原样回显,啥也没算出来。我改用对应引擎的语法,才看到运算结果被解析——漏洞确认。

那一刻我特别清醒:AI 给的是\"方向上对的猜测\",不是\"针对你目标的答案\"。它能把你可能忘掉的那几种变形列出来,但到底要不要信、信哪一条,得你自己上手验。这就是为什么我说,不会手工的人,用了 AI 反而更危险——他连\"AI 错了\"都看不出来。

幻觉的第二种:语法没问题,上下文不对。模型没见过你这套堆栈,它只能赌。赌错了,就给你一个\"看起来特别专业、其实根本打不通\"的 payload。

03破局:那个真 RCE,藏在\"命令被拼进去了\"的地方

28 个可疑点里,唯一落地成 RCE 的,是一个网络诊断功能。它收一个主机地址,后端拿去拼进系统命令做连通性检查。用户输入没做隔离,命令就被接上了。

这类问题的本质从来不是\"AI 多厉害\",而是老问题:不可信的用户输入,进了可执行上下文。命令注入是拼进 shell,反序列化是拼进反序列化器,模板注入是拼进模板引擎。换汤不换药。

// 危险写法:输入直接拼进命令(仅作检测特征说明)

String cmd = \"ping -c 1 \" + userInput;

Runtime.getRuntime().exec(cmd);

// 正确写法:参数拆开,绝不拼字符串

ProcessBuilder pb = new ProcessBuilder(

\"ping\", \"-c\", \"1\", userInput);

pb.start();

AI 在这里的价值,是帮我把\"哪个参数是命令入口\"圈出来,省了半小时翻代码。但确认它能 RCE、写出稳定验证方式,还是靠人。模型给不出\"这段拼接种会在哪些 WAF 下被拦\"的判断——那得你自己去试。

04检测侧:RCE 在被利用之前,其实全是痕迹

站在防守方看,一个命令注入从发生到 RCE,路上全是特征。WAF 能拦拼接特征,EDR 能看进程树,日志能抓异常外连。问题是大多数单位这三层都没接上。

在网关日志里捞命令注入的高频特征(给蓝队用)

grep -E \";|\||\`|\$\(|\$\{|&|\
\" access.log

# 看进程是不是从 web 服务fork出了 shell

ps -eo pid,ppid,cmd | grep -E \"sh|-c|bash\"

现在越来越多团队上 RASP——它在运行时拦\"web 进程突然要去执行系统命令\"这种反常行为,比 WAF 靠字符串匹配稳得多。AI 辅助攻击跑得越快,防守侧靠\"行为\"而不是\"特征\"的必要性就越强。

05修复侧:别禁用函数,要从结构上断开

很多开发第一反应是\"把 exec 禁了\"。禁了命令执行,反序列化又成了入口;禁了反序列化,模板注入又顶上。堵函数堵不完,得从结构上断开\"输入\"和\"执行\"。

错误思路 靠黑名单禁用危险函数;靠 WAF 正则挡一切;信任内部接口不校验。 正确思路 参数化/参数拆分,不拼字符串;输入白名单;最小权限跑服务;危险操作走审批。

说到底就一句话:用户输入永远不可信,能不拼进执行上下文就别拼。这条原则二十年前写进安全规范,今天被 AI 放大了十倍威力,因为它正好卡在\"AI 最容易幻觉\"的那个环节。

06边界声明:点到为止,也别神化 AI

以上全过程在授权范围内完成,漏洞已提交甲方修复,文中代码与特征均作脱敏,不涉及任何在运营目标。点到为止。

回到开头那 28 个点:1 个真 RCE,27 个幻觉。AI 没让我变强,它把我的强项放大了、把我的盲区也放大了。会用的人,拿它当侦察兵;不会用的人,拿它当答案书——后者迟早栽在\"AI 说能通\"的那一行上。

AI 给你的是方向,不是答案。能验真假的那双手,才是你在这行立足的本钱。

参考来源:船山信安实战案例库(授权测试脱敏)、OWASP Top 10(2021)命令注入与失效控制章节、OWASP SSTI 专题文档。本文为技术复盘,不含任何未修复系统的完整利用链。


我把一个目标丢给AI找洞,它给了我一个RCE——也给了27个幻觉" 网络安全文章

我把一个目标丢给AI找洞,它给了我一个RCE——也给了27个幻觉"

本文复盘AI辅助渗透测试实战:将目标域名交给多个大模型独立找漏洞,3小时获28个可疑点,仅1个真实RCE,其余27个为幻觉。核心观点是AI是放大器而非替代者,在信息收集和初步分析上效率高,但常产生幻觉、payload多不可用。真正落地RCE的是命令注入漏洞,本质是不可信输入进入可执行上下文。防守侧应靠行为检测而非特征匹配,修复应从结构上断开输入与执行,而非禁用函数。建议安全人员以AI为侦察兵,必须人工验证其输出。
RSA常见题型" 网络安全文章

RSA常见题型"

本文总结了CTF竞赛中RSA密码学常见题型的解题方法,涵盖基础RSA、dp/dq泄露、公钥解析、维纳攻击、低加密指数攻击、公约数求解、共模攻击、费马分解、光滑数攻击、e与phi不互素及Coppersmith攻击等,每种题型均给出具体推导步骤和代码示例,对RSA题目解答具有较强指导意义。
评论:0   参与:  0