聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
原型污染漏洞是与基于原型的语言相关的危险漏洞类型,而基于原型的语言中,最流行的又数 JavaScript。
然而,研究人员发现了适用于Python的一个原型污染变体,其它基于类的编程语言也易受类似攻击。
从原型污染到类污染
在JavaScript 中,每个对象集成了父对象的“原型”,包括该对象的所有属性和函数。JavaScript 对象可遍历父原型访问其功能。原型可在运行时修改,使JavaScript具有动态性和灵活性,但同时也具有危险性。原型污染攻击利用这一特征来修改JavaScript应用程序的行为并执行恶意操作。基于类的语言如Python本应对这类操纵免疫。
但是,安全研究员AbduIraheem Khaled 发现一种编程模式可导致攻击者在Python程序上执行类似原型污染的攻击,他将其称为“类污染”。Khaled提到,自己是在将JavaScript 原型污染的概念翻译为Python时发现这一攻击的。
操纵Python 类
Kaled 表示,所有类型的Python 应用程序,只要它们未清理用户输入并执行不安全的对象属性分配,则均易受这类攻击影响。他在调查中发现了多个流行Python库实例具有不安全的合并函数,使其易受类污染攻击。类污染的最小影响是拒绝服务。但攻击还可能在Python web 应用上造成更大的影响,如:
覆写密钥:用户签名Flask web 应用各种的会话,并手动构造合法会话发动会话接管攻击。
规避过滤器:例如在尝试加载模板文件时,绕过Jinja 中执行的路径遍历防御,从而导致本地文件披露和包含。攻击者无需被限制到模板目录,即可从任意本地目录中加载文件。
远程命令执行:通过覆写COMSPEC或PATH环境变量。
Khaled 指出,“原型污染绝对是社区需要更多关注的回头,我们近期看到对这一话题的关注。类污染可能是一种刚出现的新漏洞类型,不过我认为它很快也会出现在其它编程语言中。”
代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com
推荐阅读
W4SP Stealer瞄准Python开发人员,发动供应链攻击
这个Python 0day 已存在15年,已影响超过35万个开源项目
PyPI 仓库中的恶意Python包将被盗AWS密钥发送至不安全的站点
原文链接
https://portswigger.net/daily-swig/prototype-pollution-like-bug-variant-discovered-in-python
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~