phpMyAdmin 能用 INTO OUTFILE 写 WebShell,因 MySQL 允许将 SELECT 结果写入服务器文件系统,配合空字符串语句可生成木马;需同时具备 FILE 权限且 secure_file_priv 配置不当。phpMyAdmin 为什么能用 INTO OUTFILE 写 WebShell因为 mysql 的 into outfile 允许把查询结果直接写入服务器文件系统,配合 select '<?php eval(_post\[1\]);?\>' 这类语句,就能生成一句话木马。只要攻击者有数据库账号(哪怕只有 select 权限),且 mysql 配置了 secure_file_priv 为空或指向 web 可访问目录,就可能成功。禁用 INTO OUTFILE 的三个实际操作点光在 phpMyAdmin 界面里删权限没用,得从 MySQL 层面切断能力:回收用户 FILE 权限:执行 REVOKE FILE ON \*.\* FROM 'username'@'%';;仅靠 DROP 或 INSERT 权限无法绕过此限制设置 secure_file_priv 为 NULL 或只读路径:在 my.cnf 中加 secure_file_priv = /tmp/(确保该路径不可执行、不在 Web 根目录下);设为 secure_file_priv = "" 是危险的,MySQL 8.0+ 已不支持空值重启 MySQL 生效:修改配置后必须重启服务,SET GLOBAL secure_file_priv = ... 在运行时不可更改phpMyAdmin 侧还要关掉哪些功能即使 MySQL 层禁了 INTO OUTFILE,phpMyAdmin 自身的导出功能也可能被滥用(比如导出为 CSV 后改后缀上传):在 config.inc.php 中禁用危险导出格式:cfg'Export''disable_mime' = true;,并移除 php、sql(若非必要)等导出选项关闭「保存到服务器」功能:cfg\['SaveDir'\] = '';,避免用户把导出文件存到 Web 目录检查 cfg'UploadDir' 是否为空或指向非 Web 路径;若启用,确保该目录无执行权限(如 chmod 755 且不配 PHP 解析)验证是否真禁掉了 INTO OUTFILE别信配置文件改了就完事,登录 MySQL 命令行亲自试一句:SELECT 'test' INTO OUTFILE '/tmp/test.txt';如果返回 ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement 或 ERROR 1045 (28000): Access denied for user ... (using password: YES),说明生效;如果写入成功,说明 FILE 权限还在或 secure_file_priv 没生效。 Fotor AI Image Generator Fotor 平台的 AI 图片生成器
相关推荐
浦信仿真大讲堂1 小时前
从重复操作到自动化闭环:如何让 CST 与 Python 真正协同起来Gu Gu Study2 小时前
ScoutLoop开放域深度研究引擎(agent的初步设计想法)神龙天舞20012 小时前
MySQL 备库为什么会延迟好几个小时卷无止境3 小时前
写代码这件事,到底该讲究点什么?卷无止境3 小时前
循环复杂度到底在算什么,Python 代码怎么才能写得让人一看就懂lpfasd1233 小时前
MediaCrawler 项目深度分析丙氨酸長鏈3 小时前
Web前端入门第 问:JavaScript 一个简单的 IndexedDB 数据库入门示例Dxy12393102163 小时前
Python项目打包成EXE完整教程(PyInstaller实战避坑)bamb004 小时前
一个项目带你入门AI应用开发01独行侠影a4 小时前
APScheduler+Redis 分布式定时任务:解决多实例任务重复执行