sql注入之into outfile语句写入一句话木马

1、漏洞介绍

into outfile 语句用于把表数据导出到一个文本文件中,要想mysql用户对文件进行导入导出,首先要看指定的权限目录。mysql 新版本下secure_file_priv参数是用来限制LOAD DATA, SELECT … OUTFILE, and LOAD_FILE()传到哪个指定目录的。
当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出;
当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下;
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制。

2、必备条件

1)要有file_priv权限

2)知道网站绝对路径(可以通过报错信息、phpinfo界面、404界面等一些方式知道)

3)要能用union

4)对web目录有写权限

5)select into outfile "绝对路径/文件名"

3、实验步骤

1)?id=xx union select 1,2," into outfile "文件路径"--+

2)蚁剑、哥斯拉连接即可

4、防御
1)数据库连接账号不要用root权限

解释:黑客获取root权限可以对服务器进行操作,最高权限造成了拥有所有可以操作的权限,对任意终端操作。
2)php关闭报错模式

解释:关闭报错模式无法获取数据库配置文件路径,没有路径就会降低攻击,只能另寻他法。
3)mysql账户没有权限向网站目录写文件

解释:限制文件写入的目录和文件类型,避免恶意用户写入危险的文件

你可能感兴趣的:(网络安全,网络安全)