皮皮网

【pthread源码分析】【洗车平台源码】【fabric源码解读】php源码存在漏洞的源码

时间:2024-12-28 22:04:02 分类:知识 来源:一流源码

1.Goby漏洞发布 | XAMPP Windows PHP-CGI 代码执行漏洞(CVE-2024-4577) 【漏洞复现】
2.烽火狼烟丨PHP远程代码执行漏洞(CVE-2022-31625、码存码CVE-2022-31626)风险提示
3.Joomla未授权访问漏洞存在未授权访问漏洞CVE-2023-23752
4.ThinkPHP多语言rce复现分析
5.thinkphp 3.2.3 exp注入漏洞分析
6.在常用CMS中发现的漏洞严重漏洞

php源码存在漏洞的源码

Goby漏洞发布 | XAMPP Windows PHP-CGI 代码执行漏洞(CVE-2024-4577) 【漏洞复现】

       PHP是一种在服务器端执行的脚本语言,在 PHP 的 8.3.8 版本之前存在命令执行漏洞,由于 Windows 的 “Best-Fit Mapping” 特性,在处理查询字符串时,非ASCII字符可能被错误地映射为破折号(-),导致命令行参数解析错误,当 php_cgi 运行在Windows平台上,且代码页为繁体中文、码存码简体中文或日文时,漏洞攻击者可以通过特定的码存码查询字符串注入恶意参数,从而执行任意代码。漏洞pthread源码分析

       CVSS core: 9.8

       漏洞危害:攻击者可以通过特定的码存码查询字符串注入恶意参数,从而执行任意代码,漏洞以至于接管服务器。码存码

       危害等级:高

       影响版本:

       PHP 8.3 < 8.3.8

       PHP 8.2 < 8.2.

       PHP 8.1 < 8.1.

       其他版本官方已停止维护,漏洞可根据实际情况采取相应的码存码措施

       解决方案:

       1.更新到PHP官方发布的最新PHP版本: php.net/downloads

       2.对于无法升级PHP的用户:以下重写规则可用于阻止攻击。需要注意的漏洞是,这些规则仅对繁体中文、码存码简体中文和日语语言环境起到临时缓解作用。漏洞在实际操作中,码存码仍然建议更新到补丁版本或迁移架构。洗车平台源码 RеᴡิตеEnɢіnе On Rеᴡɪté Cоd %{ QUERY_STRING} ^%аd [NC] Rеᴡɪté Rulе .? - [F,L]

       3.对于使用 XAMPP fоr Windоᴡs 的用户:如果确认不需要 PHP CGI 功能,可以通过修改以下 Aрасhе H

       TTP Sеrvеr 配置(/Pari-Malam/C... 可直接显示这些信息,但请谨慎操作。

       安全建议是,已受影响的用户应尽快将系统升级至Joomla! CMS 4.2.8版本,以修复这个漏洞。

       此问题提醒我们回顾过去,如Apache APISIX Dashboard的默认口令问题和zeroshell防火墙的远程命令执行漏洞CVE--,持续关注并及时采取安全措施是必要的。

ThinkPHP多语言rce复现分析

       前言

       最近对 ThinkPHP 多语言远程代码执行 (RCE) 漏洞进行了一番深入学习,该漏洞在特定版本的 ThinkPHP 中存在,本文将详细分析其利用条件、环境搭建、漏洞流程以及漏洞复现的过程。

       一、fabric源码解读漏洞信息

       利用该漏洞,需满足以下条件:

       1. 确保已安装 ThinkPHP,并知道 pearcmd.php 文件的位置(默认为 /usr/local/lib/php/pearcmd.php,Docker 版本镜像中 pear 默认已安装)

       2. 需开启 php.ini 中的 register_argc_argv 选项(Docker 的 PHP 镜像是默认开启的)

       3. ThinkPHP 需开启多语言功能

       影响范围:

       主要影响 ThinkPHP 版本在 6.0.1、5.0.0、5.1.0 以下至对应补丁修复版本的用户。

       二、环境搭建

       首先,从 GitHub 下载 ThinkPHP 源码(例如,版本为 6.0.),解压后,通过 composer 安装依赖。在 app/middleware.php 文件中取消注释以开启多语言功能。接着,通过 go-pear.phar 或 Docker 安装 pear。js gif源码

       三、漏洞分析

       漏洞主要在于 LoadLangPack 类中的 handle 函数,该函数先通过 detect() 方法检查请求参数是否设置了语言,之后将设置值返回并用于切换语言集。在传递给 load() 函数后,参数又传入 parse() 函数,直接用 include 包含文件,此为漏洞触发点。从获取参数到传入 parse() 函数前,均未对内容进行过滤。

       四、漏洞复现

       在测试环境中(macOS、PHP 7.3、Apache 2.4),通过以下步骤进行复现:

       1. 验证 pearcmd 的qt svg源码存在,获取正确路径(当前环境为 /usr/local/pear/share/pear/pearcmd.php)。

       2. 了解如何利用 pear,在开启 register_argc_argv 选项后,参数将作为 $_SERVER['argv'] 的一部分传入。

       3. 使用 poc 测试,在 /tmp 目录下写入 admin.php 文件,确保正确写入,验证参数解析过程。

       4. 利用文件包含访问写入的文件,实现漏洞复现。

       注意,除了使用 config-create 命令,还可以使用 Install 命令进行下载操作。若喜欢本文,别忘了点赞与收藏。关注雷石安全实验室,获取更多网络安全知识与技术文章。

thinkphp 3.2.3 exp注入漏洞分析

       在官网下载thinkphp3.2.3,配置MySQL账号密码于Convention.php文件,添加一行用于打印SQL语句。漏洞代码通过特定的HTTP请求触发,如:http://.0.0.1/index.php?id[0]=exp&id[1]==1 or sleep(5)。通过断点调试,跟踪至Model类的select函数,进而深入至其内部处理逻辑,发现$exp的值即为传入的exp,该值被直接拼接到后续SQL语句中,形成SQL注入。

       使用I函数可以防止注入攻击,原因在于ThinkPHP\Common\functions.ph中的think_filter函数会将特殊关键字(如EXP、OR等)加上空格,避免进入if语句进行SQL字符拼接。

       对于普通的SQL注入,thinkphp3.2.3会通过解析数据库字段类型来防止注入。在Model类的_parseType()函数中,对于字段类型为int()的字段,会将传入的值转化为整数类型,使得注入语句失效。对于字符型注入,系统在Think\Db\Driver.class.php中的escapeString()函数中对特殊符号进行转义,实现防御。

       除了exp注入,还有bind注入方法。bind注入通过在SQL语句中插入特殊符号,导致SQL错误进行攻击。虽然实现较为复杂,但由于think_filter函数未对bind进行过滤,因此即使使用了I函数获取参数,仍有可能实现bind注入。

       针对此漏洞的修复策略包括:1. 尽量在应用中使用I函数获取用户输入的参数;2. 修复代码,将安全补丁整合到index.php入口文件中,确保应用从源头开始执行安全措施。

在常用CMS中发现的严重漏洞

       PHPFusion,一个被全球超过万个网站依赖的开源内容管理系统,最近被发现存在一个严重漏洞CVE--,可能导致远程代码执行(RCE)风险。这个漏洞影响了9..及更早版本,其CVSS基础得分高达8.3,表明其高度的严重性。

       Synopsys网络安全研究中心(CyRC)在没有找到官方补丁的情况下,曾多次尝试通过邮件、Github和论坛向PHPFusion项目所有者报告此漏洞,但未见响应。Synopsys漏洞分析师Matthew Hogg透露,这是他们团队首次遇到的项目维护者对漏洞报告置若罔闻的情况。

       漏洞的根本原因在于对受污染文件名处理的不足,攻击者能通过特定HTTP GET请求中的参数,利用论坛注入端点包含并执行任意扩展名为.php的恶意文件,需要管理员权限才能实施。这可能导致敏感信息泄露,甚至服务器控制,前提是攻击者能上传有效载荷。

       鉴于补丁的缺失,Hogg建议用户通过管理面板禁用论坛注入功能以消除漏洞利用点。若无法实施,Web应用程序防火墙等技术可以作为临时防护,过滤掉部分攻击尝试。然而,由于漏洞的存在,网站所有者应尽快评估安全措施,以防止潜在威胁。

copyright © 2016 powered by 皮皮网   sitemap