文章总结: 文章分析蚁剑(AntSword)终端模块高危漏洞,该漏洞因过滤函数antSword.noxss()未完全过滤特殊格式,导致服务端返回内容被解析为javascript链接,在Electron环境下结合nodeIntegration权限升级为客户端本地命令执行(RCE)。漏洞核心在于恶意WebShell可反向攻击客户端,需用户交互点击链接。建议更新至v2.1.16修复版本,并谨慎连接未知WebShell。 综合评分: 85 文章分类: 漏洞分析,WEB安全,红队,安全工具,应用安全
蚁剑最新高危漏洞分析:为什么一个“终端输出”最后变成了客户端 RCE?
原创
MarkSec MarkSec
六边形攻防安全
2026年5月12日 20:33 河北
在小说阅读器读本章
去阅读
最近,AntSword 官方 Issue #370 披露了一个非常有意思的漏洞。
很多人第一眼会觉得:
“不就是个 XSS 吗?”
但实际上,它最后能升级成:
客户端本地命令执行(RCE)
官方已经在 v2.1.16 中修复。
一、漏洞核心是什么?
问题出在:
终端模块会对服务端返回内容进行二次解析
而过滤函数:
antSword.noxss()
没有完全过滤特殊格式。
攻击者可以构造:
[[!;;;;javascript:xxx]{http://test}]
最终被终端组件解析成:
<a href="javascript:xxx">
于是:
服务端输出→ 客户端终端渲染→ javascript: 链接→ Electron 执行→ 本地命令执行
整个链路本质上是:
“远程内容被客户端当成可信代码处理”
二、真正危险的是 Electron
普通 Web XSS 危害其实有限。
但 AntSword 使用的是:
Electron
并且开启了:
nodeIntegration
这意味着渲染层可以直接调用:
require()child_processfs
于是:
require('child_process').exec(...)
就能直接执行本地系统命令。
所以这个漏洞最关键的地方其实是:
Electron 环境下的 XSS ≈ 本地 RCE
三、最容易被忽略的一点:恶意服务端反打客户端
很多人默认:
客户端攻击 WebShell
但这个漏洞刚好反过来了:
恶意 WebShell 反向攻击 AntSword 客户端
也就是说:
你连接的 Shell 本身可能就是陷阱
尤其是:
- 来路不明的 WebShell
- 共享测试环境
- CTF 环境
- 红队钓鱼环境
都可能利用这种思路。
四、为什么很多复现都用了 auto_prepend_file?
因为:
auto_prepend_file
可以让 PHP:
在每次执行前自动加载一个文件
这样就能:
统一污染所有响应
而且:
- 不需要修改已有 WebShell
- 不需要改客户端 Payload
- 隐蔽性很高
所以它经常出现在:
- WebShell 持久化
- PHP 后门
- 流量劫持
- 长驻型木马
等场景里。
五、测试
这里搭建测试环境,本地蚁剑去连接远程的shell在虚拟终端中执行命令点击构造的链接造成本地代码执行。
本地mac 蚁剑版本V2.1.15
同样笔者测试windows版本v2.1.15同样存在漏洞
利用代码
六、这个漏洞真正值得学习的地方
以前安全有个核心的安全思想”永远不要相信用户输入的内容”,但今天在这里却是:
永远不要相信远程服务器返回的内容
哪怕它只是:
“一个终端输出”
因为:
只要客户端会“再次解释”这些内容就可能出问题
类似问题其实大量存在于:
- Markdown 渲染
- 富文本编辑器
- 聊天系统
- 日志平台
- AI Agent
- MCP 工具链
七、最后
这个漏洞虽然已经修复。且这个漏洞其实还是需要用户主动点击终端中的链接(1-click 交互)影响面有限。
但它暴露出来的问题,其实远不止 AntSword。
而是:
Electron + 富文本 + Node.js 权限
这个组合,本身就天然高危。
未来随着:AI Agent、MCP、桌面化安全工具越来越多。
类似:
“远程内容 → 本地执行”
的问题,大概率还会继续出现。
参考链接
- https://github.com/AntSwordProject/antSword/issues/370
- https://github.com/AntSwordProject/antSword/releases
- https://github.com/AntSwordProject/antSword
公众号回复【蚁剑漏洞】获取完整漏洞利用代码及线上测试环境。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:六边形攻防安全 MarkSec MarkSec《蚁剑最新高危漏洞分析:为什么一个“终端输出”最后变成了客户端 RCE?》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。







评论