一、引言
想要让利用注入点让SQL语句能执行读取相关文件的操作,需要一个非常重要的条件,即在MySql数据库的配置文件my.ini中一定要有 secure file priv=" "
二、读取文件配置
①在虚拟机中查看my.ini文件中有没有secure file priv=" "
②在本机上看my.ini文件中有没有secure file priv=" "
启动MySQL,先查看secure_file_priv的值。
命令:show variables like"secure%" 或 select @@secure_file_priv;
1.secure_file_priv = NULL ,限制文件的读取和写入。
2.secure_file_priv = 文件路径 ,限制文件的读取和写入只能在设定的文件夹中。
3.secure_file_priv= “”, 对文件和读取和写入没有任何限制。
三、实操演习
我们win+R--打开mysql数据库--输入如下查询语句,发现其读取到了刚刚新建文件里面的内容
接着我们尝试在pikachu靶场测试,先来数据库里面用SQL语句尝试:
如下,第一次尝试输入的语句用union SELECT查询的前后字段不同,前面是两个即‘id 、email' 后面是一个load_file()函数,不符合联合查询语法,所以报错
在load_file()函数前面加上一个 '1'后,命令执行成功!
下面是以字符型注入为例,直接在pikachu靶场里修改得到的结果!
以上为个人在学习时的总结,如有错误,欢迎大家前来评论指正哦!!!