Proto没反应,换成Constructor直接拿到赏金|服务端原型链污染踩坑记

admin 2026-05-24 04:58:20 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文通过实战案例详细解析了服务端原型链污染漏洞的挖掘与利用过程。作者在个人信息管理功能中发现地址变更接口存在安全风险,通过构造特定constructor/prototype的JSONpayload成功污染原型链,将普通用户的isadmin属性提升为true,最终实现越权访问管理员面板。文章核心展示了如何从看似普通的业务逻辑中挖掘高危漏洞,并提供了完整的探测、验证和利用方法。 综合评分: 78 文章分类: web安全,漏洞分析,实战经验,红队


cover_image

Proto 没反应,换成 Constructor 直接拿到赏金|服务端原型链污染踩坑记

原创

升斗安全XiuXiu 升斗安全XiuXiu

升斗安全

2026年5月23日 00:06 广东

在小说阅读器读本章

去阅读

【文章说明】

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

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

你是否也遇到过这样的情况:挖洞时面对一堆功能点,不知道该从哪儿下手?

其实,很多高危漏洞就藏在那些看起来“平平无奇”的业务逻辑里,比如今天要聊的,还是那个该死的地址变更功能。

先说清楚咱们要做什么:

这是一个典型的个人信息管理场景。登录账户后,在页面上更新并提交你的账单地址或送货地址。表面看,它就是个简单的资料修改,但如果后端处理不当,这事儿就变得有趣了。

首先,掏出我们的“老伙计”Burp Suite。

在 HTTP 历史记录里,找到这条请求:

POST /my-account/change-address

看一眼,你会发现提交的并不是传统表单,而是一段 JSON 数据。服务器返回的响应也很有意思,它会直接回传一个代表你用户信息的 JSON 对象,并且里面已经带上了刚才修改过的新地址。

信息一来一回,很多开发者觉得“只是改个字段而已”,但对我们来说,这种地方恰恰值得多看一眼。

把请求送到 Repeater,开始动手试探。

第一步:找一找有没有“原型污染”的感觉

先试试最经典的 payload,往 JSON 里插入:

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

发送后,切到响应的 “Raw” 视图观察缩进。

嗯……这次好像没什么变化,缩进纹丝不动。别急,这不是说漏洞不存在,而是可能触达原型的方式不太一样。

换个姿势,试试用 constructor 来绕路:

"constructor": {    "prototype": {        "json spaces": 10    }}

再发送一次。

这回有意思了——响应里的 JSON 缩进明显被拉大了,完全按我们给的数值来。

这几乎就是个明确信号:原型污染成功触发了。某个地方在处理 JSON 时,不小心把我们的属性“写”进了全局原型里,还乖乖照着做了格式化。

第二步:看看能拿这个“污染”做什么

光改缩进只能当个乐子,真正的重点是:响应里还有没有别的“宝贝”?

瞄一眼返回的用户对象,果然,发现了一个让人心跳加速的字段【isAdmin: false】

到了这里,思路就非常直接了——如果我能让 isAdmin 变成 true,而这个字段又没有老老实实定义在对象自身,而是默认去原型上找,那权限提升就只是临门一脚。

于是构造下面的 payload:

"constructor": {    "prototype": {        "isAdmin": true    }}

响应回来了,里面赫然显示 isAdmin: true。说明这个对象本身并没有 isAdmin 属性,它很“信任”地从被我们污染的原型里继承了这个值。

第三步:让效果落地到浏览器

别只盯着 Burp 高兴,打开浏览器刷新一下页面。

你会发现,原本只属于管理员的功能入口——管理面板的链接,悄无声息地出现在了你的账户界面上。

点进去,就直接完成了越权访问。

这时候,你拥有的已经是一个普通用户的身份,却能执行管理员才有的增删改查操作。整个过程没有高深技巧,只是顺着数据流,多试探了几下。

这,就是原型污染配合业务逻辑带来的连锁反应。

很多漏洞并不是输在技术难度,而是输在“没想到这儿也能被利用”。

下次挖洞时,别急着略过那些“看起来只能改个地址”的功能点,也许一个 JSON 的缩进变化,就能拉开整个系统的口子。

如果觉得这类思路对你有帮助,不妨点个关注,顺手来个点赞和在看,再分享给身边一起挖洞的兄弟。

后续我会持续更新更多“一看就懂、一学就能用”的挖洞实战笔记,咱们一起把藏在角落里的高危漏洞一个个揪出来


免责声明:

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

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

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

本文转载自:升斗安全 升斗安全XiuXiu 升斗安全XiuXiu《Proto 没反应,换成 Constructor 直接拿到赏金|服务端原型链污染踩坑记》

评论:0   参与:  0