## 如何使用PhpEXE來利用任意文件上傳漏洞
任意文件上傳在Web應用程序中是非常常見的,可能會被濫用來上傳惡意文件,然后危害服務器。通常,攻擊者將根據支持的任何服務器端編程語言來選擇一個有效載荷。因此,如果易受攻擊的應用程序在PHP中,那么顯然PHP是支持的,因此一個簡單的選擇就是使用諸如Metasploit的PHP meterpreter之類的PHP有效載荷。然而,PHP meterpreter并不像Windows meterpreter那樣共享相同的性能。所以在現實中,會發生什么呢?你可能會想升級到一個更好的shell,在這個過程中需要額外的手動工作。
那么對于這種類型的場景為什么限制你的有效載荷選項 ,你應該使用PhpEXE mixin。它用作PHP中的有效負載,將最終的惡意可執行文件寫入遠程文件系統,然后在使用后自行清除,因此不會留下任何痕跡。
### 要求
要使用PhpEXEmixin,應該滿足一些典型的可利用的要求:
* 您必須在Web服務器上找到可寫的位置。
* 同一個可寫位置也應該可以通過HTTP請求讀取。
注意:對于任意文件上傳漏洞,通常有一個目錄包含上傳的文件,并且是可讀的。如果這個bug是由于目錄遍歷造成的,那么臨時文件夾(來自操作系統或者web應用程序)就是你的選擇。
### 用法
* 首先在您的Metasploit3類范圍內包含mixin ,如下所示
~~~
include Msf::Exploit::PhpEXE
~~~
* 使用php生成載荷(php stager) `get_write_exec_payload`
~~~
p = get_write_exec_payload
~~~
* 如果您正在使用Linux目標,則可以將其設置unlink_self為true,這將自動清除可執行文件:
~~~
p = get_write_exec_payload(:unlink_self=>true)
~~~
在Windows上,您可能無法清除可執行文件,因為它可能仍在使用中。如果無法自動清除惡意文件,則應始終警告用戶,以便在滲透測試期間手動完成。
* 上傳有效載荷
這個時候你可以上傳 `get_write_exec_payload`生成的有效載荷然后使用GET請求來調用它。如果您不知道如何發送GET請求,請參考以下文章
https://github.com/rapid7/metasploit-framework/wiki/How-to-Send-an-HTTP-Request-Using-HTTPClient
- Home
- 開始使用
- 安裝metasploit開發環境
- 使用metasploit
- 使用git
- 報告一個bug
- 貢獻代碼
- 貢獻給metasploit
- 創建一個loginscans Metasploit模塊
- 接受模塊和增強功能的指導
- 常見的Metasploit模塊代碼錯誤
- 樣式提示
- metasploit提交者
- metasploit開發
- 為什么是ruby
- 樣式提示
- 如何開始寫一個exploit
- 如何開始寫一個輔助模塊
- 如何開始寫一個post模塊
- 如何開始寫一個Meterpreter腳本
- 載入外部模塊
- exploit rank
- Metasploit模塊引用標識符
- 怎么在你的exploit中確認window補丁程序級別
- 如何使用filedropper清理文件
- 如何棄用metasploit模塊
- 如何在模塊開發中報告或儲存數據
- 在metasploit如何使用日志
- 如何在metasploit對JavaScript進行混淆
- 如何解析一個http響應
- 如何使用HTTPClient發送HTTP請求
- 如何使用命令階段
- 如何使用數據儲存選項
- 如何在window后期開發中使用railgun
- 如何在exploit中使用powershell
- 如何使用PhpEXE來利用任意文件上傳漏洞
- 如何使用FILEFORMAT mixin創建一個文件格式exploit
- 如何使用BrowserExploitServer編寫一個瀏覽器exploit
- 如何使用HttpServer編寫瀏覽器exploit
- 如何編寫一個check()方法
- 如何使用Seh mixin來利用異常處理程序
- 如何在Windows上使用WbemExec進行寫入權限攻擊
- 如何使用httpserver和httpclient編寫一個模塊
- payloads如何工作
- 如何免殺
- 如何正確使用metasploit模塊