指令摘要
這個指令利用不安全的檔案上傳表單來進行網頁應用程式的攻擊,使用各種技巧,例如更改 Content-type 表頭 (header) 或建立包含攻擊負載的有效圖檔中的註釋;Content-type 表頭通常用於指出傳送的資料類型,攻擊者可以嘗試更改這個表頭的值,讓伺服器誤以為接收到的是合法的檔案類型,然而實際上可能是包含惡意內容的檔案。
另一個技巧是在圖像檔案中嵌入攻擊程式碼,攻擊者可以建立看似合法的圖檔,但在檔案中包含了惡意的程式碼或註釋;當這個圖像檔案被上傳到應用程式,應用程式可能會解析這些註釋或程式碼,導致安全漏洞。
指令參數
http-fileupload-exploiter.fieldvalues
這個指令會嘗試填寫上傳表單中的每個字元欄位,但由於字元欄位可能存在限制,所以有時候自動填寫可能會失敗;在這種情況下,可以使用 http-fileupload-exploiter.fieldvalues 選項來手動填寫這些字元欄位;例如,你可以使用以下方式手動填寫一些字元:
{gender = "男性", email = "foo@bar.com"}
這個選項允許為每個字元欄位指定特定的值,以確保成功填寫表單,並試圖利用潛在的檔案上傳漏洞;預設情況下,這個選項是空的({}),也就是不指定手動填寫字元欄位的值,而是嘗試自動填寫所有字元欄位。
指令參數
http-fileupload-exploiter.formpaths
用於指定包含要利用的上傳表單的頁面列表,例如,{/upload.php, /login.php};預設值為 nil(啟用爬蟲模式)。
http-fileupload-exploiter.uploadspaths
包含上傳文件的目錄列表,例如,{/avatars, /photos};預設值為 {'/uploads', '/upload', '/file', '/files', '/downloads'}。
slaxml.debug
查看 slaxml函式庫的文件以進行除錯。
httpspider.doscraping, httpspider.maxdepth, httpspider.maxpagecount, httpspider.noblacklist, httpspider.url, httpspider.useheadfornonwebfiles, httpspider.withindomain, httpspider.withinhost
這些選項與 httpspider函式庫有關,用於爬取網站的資訊,可以查看該函式庫了解詳細資訊。
smbdomain, smbhash, smbnoguest, smbpassword, smbtype, smbusername
這些選項與 smbauth函式庫有關,用於 SMB 認證,可以查看該函式庫了解詳細資訊。
http.host, http.max-body-size, http.max-cache-size, http.max-pipeline, http.pipeline, http.truncated-ok, http.useragent
這些選項與 http函式庫有關,用於設定 HTTP 請求的相關參數,可以查看該函式庫了解詳細資訊。
指令範例
nmap -p80 --script http-fileupload-exploiter.nse <target>
This script discovers the upload form on the target's page and
attempts to exploit it using 3 different methods:
1) At first, it tries to upload payloads with different insecure
extensions. This will work against a weak blacklist used by a file
name extension verifier.
2) If (1) doesn't work, it will try to upload the same payloads
this time with different Content-type headers, like "image/gif"
instead of the "text/plain". This will trick any mechanisms that
check the MIME type.
3) If (2), doesn't work, it will create some proper GIF images
that contain the payloads in the comment. The interpreter will
see the executable inside some binary garbage. This will bypass
any check of the actual content of the uploaded file.
TODO:
* Use the vulns library to report.
指令輸出
PORT STATE SERVICE REASON
80/tcp open http syn-ack
| Testing page /post.html
|
| Successfully uploaded and executed payloads:
| Filename: 1.php, MIME: text/plain
|_ Filename: 1.php3, MIME: text/plain
作者:
George Chatzisofroniou
License: Same as Nmap--See https://nmap.org/book/man-legal.html
隨選即看研討會
延伸閱讀
NetAlly 滲透測試及網路測試總覽 > CyberScope Nmap 滲透測試手持式網路分析儀,整合了 Nmap 功能,為站點存取層提供全面的網路安全風險評估、分析、和報告——包括所有的端點和網路探索、有線與無線網路安全、漏洞評估 (Nmap) 以及網段和配置驗證;IT 人員透過單一工具以及單一介面,即可快速且即時的掌握企業或組織的各種混合式網路環境 (有線、無線、PoE)、各種連網終端裝置的拓樸、架構、設定、網段、效能、直到網路安全評估。