MySQL Out-of-Band 攻击

目录

1. 概述

2.MySQL中的限制条件

3.解决方案

4.使用文件系统提取数据

5.使用DNS解析提取数据

6.窃取NetNTLM哈希

7.SMB中继攻击

8.union注入和报错注入

9.XSS + SQLi

10.总结


1. 概述

当涉及到MSSQL与Oracle时,Out-of-Band 注入是非常好的方式。但MySQL注入的情况并非如此。我们可以利用诸如load_file() 和 select…into之类的函数来outfile/dumpfile。除此之外,我们还可以窃取NetNTLM哈希或者进行SMB中继攻击。这所有的一切都只能在Windows环境下的MySQL中实现。

什么是 Out-of-Band 注入?

这些攻击涉及除了通过除服务器提取数据之外的其他方式,可能是HTTP(S)请求、DNS解析、文件系统、电子邮件等,具体取决于后端实现的功能。

2.MySQL中的限制条件

MySQL中有一个名为secure_file_priv的全局系统变量。这个变量用于限制数据导入和导出操作造成的影响,例如由LOAD DATA 和SELECT…INTO OUTFILE语句和LOAD_FILE()函数执行的操作。

如果变量设置为目录的名称,则服务器会将导入和导出操作限制在跟这个目录中一起使用。这个目录必须存在,服务器不会自己创建它。

如果变量为空,则不会产生影响,引起不安全的配置。

如果变量设置为NULL,那么服务器就会禁用导入和导出操作。这个值从MySQL 5.5.53版本开始允许。

在MySQL 5.5.53之前,此变量默认为空,因此我们就可以使用这些函数。但是在5.5.53之后的版本中,NULL值会禁用这些功能。我们可使用其中的一种方法来检查这个变量的值。Secure_file_priv是一个全局变量,它是一个只读变量,你不能在运行时改变它。

select @@secure_file_priv;

select @@global.secure_file_priv;

show variables like “secure_file_priv”;

例如我的MySQL 5.5.34中的默认值为空,我们就可以使用这些功能。

 

在MySQL 5.6.34版本中,这个值默认是NULL,这将禁用导入和导出操作。

 

3.解决方案

这里有几个解决方法,可以在5.5.53之后的版本中克服这个问题。

启动mysqld进程,将“-secure-file-priv =”参数设置为空。mysqld.exe –secure-file-priv=

在“my.ini”配置文件中添加条目:secure-file-priv=

查找默认选项的加载顺序和配置文件的路径࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值