SQL注入读写文件

发布于 2023-04-02  358 次阅读


权限查询

  • 数据库中secure_file_priv参数,该参数指定了数据库导入和导出的安全路径。

  • 该参数可以有三种类型,如果该参数为一个目录,那么我们执行上述命令的前提是文件处于该参数指定的目录下;如果该参数为NULL,那么上述命令都无法执行;如果该参数为空,那么上述命令都可以无限制执行。

  • 可使用以下语句查询权限

show variables like 'secure_file_priv';
show global variables like '%secure%';
  • 值有三种情况(懒得改配置文件了,直接用别人的结果),无限制,无权限和指定目录

(无限制)

(无权限)

读写文件

  • 读文件
select load_file("D:\\123.txt");

  • 写文件
select "real flag" into outfile "D:\\234.txt";

  • 这样就可以实现读取flag或者写入木马了

进制绕过

  • 当我们使用SQL注入来进行文件读写时,还需要注意,在网站的PHP设置中是否使用了magic_quotes_gpc的魔术引导开关,该参数的设置会对单引号、双引号、反斜杠与空字符进行过滤。
  • 这样,当我们使用MySQL进行文件读写,要输入目标站点路径时,就会受到限制。针对这一点,我们可以使用16进制编码的方式来进行绕过。
  • 这里用一个工具来转一下16进制,也可以找一些网站转

  • 原命令
select load_file("D:\\123.txt");
  • 转换后
select load_file(0x443A5C5C3132332E747874);

届ける言葉を今は育ててる
最后更新于 2024-02-07