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 图片生成器
相关推荐
Minner-Scrapy1 小时前
Scrapy 2.17 源码解析:Scheduler 调度器与磁盘/内存双队列CODER03041 小时前
Anaconda和Mamba创建环境管理包常用命令合集闲猫1 小时前
LangGraph / Capabilities / Fault tolerance程序员夏洛2 小时前
MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别?IvanCodes2 小时前
Python 基础语法(一):变量、数据类型与运算符Wang's Blog2 小时前
PostgreSQL笔记34:索引优化策略全景解析——从B-tree到HOT的核心原理与实践程序员三藏3 小时前
浅谈性能测试l1258653 小时前
# RAG向量数据库优化实战:HNSW索引调参与生产级性能设计梦Arrebol3 小时前
Mysql内容及相关实验OceanWaves19933 小时前
mysql 8.0.32 磁盘爆满,清理从库日志