top of page
作家相片Samuel

Nmap NSE Category vulns Script:http-phpself-xss PHP_SELF 反射型跨站指令攻擊

已更新:8月26日


Nmap Script指令摘要


這個指令透過瀏覽網頁伺服器以建立PHP檔案清單,然後發送一個攻擊向量/探測,以識別 PHP_SELF 反射型跨站指令攻擊漏洞;PHP_SELF XSS 指的是由於 PHP 指令未對 $_SERVER["PHP_SELF"] 變數進行適當過濾,而導致的反射型跨站指令攻擊漏洞,這個變數通常在顯示表單和需要指令檔案名稱的PHP指令中使用。


攻擊向量/探測範例:

/'"/><script>alert(1)</script>

參考資料:


您還可以參考以下與跨站指令攻擊有關的其他Nmap工具:


Nmap Script指令參數

http-phpself-xss.timeout

這個參數設定了 PHP_SELF 反射型跨站指令掃描指令爬蟲操作的超時時間,預設值為10秒;當執行掃描操作時,這個參數可以用來限制爬蟲的執行時間,以確保不會因爬取時間過長而影響其他操作或造成不必要的等待。


這個超時時間決定了爬蟲在存取網站頁面時等待回應的時間限制,如果設定的超時時間內未收到回應,則爬蟲將放棄該頁面的探索,繼續下一個頁面的爬取,這有助於提高掃描的效率,避免無限等待不回應的頁面。


您可以根據您的需求調整這個參數,例如,如果您希望更快地完成掃描,可以將超時時間設定為較短的值,反之亦然;請根據您的網路環境和掃描要求來選擇合適的超時時間。

http-phpself-xss.uri

這個參數用於設定 PHP_SELF 反射型跨站掃描指令的起始URI(統一資源標誌符),預設值是 "/",代表根目錄;URI是網址中的一部分,用來識別和定位網站上的資源,例如網頁、文件、圖像等,在這個情境下,URI表示掃描操作將從哪個網頁或目錄開始進行;如果您希望針對特定目錄或網頁進行掃描,您可以修改這個參數,將其設定為相應的URI。


例如,如果您想要對網站的某個子目錄進行掃描,可以將 http-phpself-xss.uri 設定為該子目錄的 URI,例如 "/subdirectory",系統將從該子目錄開始進行爬取和檢測潛在的 PHP_SELF 反射型跨站指令漏洞。


請根據您的需求和掃描目標來調整這個參數,以確保掃描過程針對您希望檢測的資源進行操作。

httpspider.doscraping, httpspider.maxdepth, httpspider.maxpagecount, httpspider.noblacklist, httpspider.url, httpspider.useheadfornonwebfiles, httpspider.withindomain, httpspider.withinhost
  • httpspider.doscraping:用於設定是否要對已經爬取的網頁進行進一步的HTML解析和擷取操作;如果設定為true,系統將嘗試分析已經抓取的網頁以擷取更多訊息;預設值為false,不進行HTML解析。

  • httpspider.maxdepth: 用於設定爬取操作的最大深度,即爬取過程中可以進入的最深層次的連結;如果設定為 0,則只爬取起始URL指定的頁面,不進一步深入;預設值為0。

  • httpspider.maxpagecount: 用於設定最大爬取頁面數,如果在設定的頁面數達到之前找到了所需的資源,則爬取操作會提前終止;有助於控制爬取過程的範圍和時間,預設值為無限(0)。

  • httpspider.noblacklist: 用於設定是否要禁用對URL黑名單的檢查;如果設定為 true,系統將不會檢查 URL 是否在黑名單中,而會嘗試存取所有URL;預設值為false。

  • httpspider.url: 用於指定爬取操作的起始URL,您可以將其設定為要開始爬取網站頁面的URL。

  • httpspider.useheadfornonwebfiles: 用於設定是否對非網頁檔案使用 HTTP HEAD 請求來節省頻寬;如果設定為 true,系統將僅使用 HTTP HEAD 請求檢查非網頁檔案的存在,而不下載整個檔案;預設值為false。

  • httpspider.withindomain:用於設定是否限制爬取操作只在同一網域名稱下進行;如果設定為true,系統將只存取與起始 URL 相同網域名稱的頁面;預設值為false,允許跨網域名稱爬取。

  • l   httpspider.withinhost: 用於設定是否限制爬取操作只在同一主機(Host)下進行;如果設定為true,系統將只存取與起始 URL 相同主機的頁面;預設值為false,允許跨主機爬取。

這些參數可以用於設定和控制 httpspider 函式庫的爬取操作,以滿足不同的需求和目標;請根據您的爬取任務和要爬取的網站來調整這些參數,以達到最佳效果;請至 httpspider 函式庫了解更多詳細資訊。

vulns.short, vulns.showall
  • vulns.short:用於控制漏洞掃描操作的詳細程度;如果設置為true,系統將以簡短模式運行,僅顯示漏洞的簡要訊息;預設值為false,以詳細模式運行,顯示更多漏洞詳細資訊。

  • vulns.showall:用於設定是否要顯示所有漏洞,包括已知的和未知的漏洞;如果設定為true,系統將顯示所有漏洞資訊,無論其已知與否;預設值為false,僅顯示已知漏洞訊息。

這些參數用於設定和控制vulns函式庫的漏洞掃描操作。您可以根據需要調整這些參數,以滿足您的漏洞掃描需求,並根據情況選擇顯示詳細或僅顯示已知漏洞,請至 vulns 函式庫了解詳細資訊。

slaxml.debug

用於除錯slaxml函式庫的參數,當此參數設定為true時,它會啟用除錯模式,函式庫將輸出額外的除錯訊息,幫助您進行問題排查和錯誤修復;通常在開發和測試過程中使用除錯模式,以更容易地理解函式庫的運作方式並找出潛在的問題。


slaxml函式庫主要用於處理XML資料,並提供了一系列功能來解析和產生XML檔案,當您需要在使用slaxml函式庫時進行除錯或瞭解其內部運作時,可以啟用slaxml.debug來獲取更多有關函式庫操作的訊息;此參數通常在開發過程中使用,以幫助開發者更好地理解和使用slaxml函式庫;請至 slaxml 函式庫了解更多詳細資訊。


smbdomain, smbhash, smbnoguest, smbpassword, smbtype, smbusername
  • smbdomain(SMB網域): 用於指定SMB(Server Message Block)協定中的網域(或工作群組)名稱,SMB是一種用於共享文件、印表機和資源的網路協定,透過設定smbdomain,您可以指定要存取的SMB網域,以確保正確的身份驗證和存取權限。

  • smbhash(SMB哈希): 常用於指定SMB身份驗證的哈希值 (Harsh Value),哈希是一種將密碼轉換為固定長度散列值的過程,通常用於安全地儲存密碼;透過設置smbhash,您可以提供哈希值,以完成SMB身份驗證,而不需要明文密碼。

  • smbnoguest(禁用訪客存取): 這是一個布林值參數,用於設定是否禁用SMB訪客存取,如果設定為true,則禁用訪客存取,只允許已經驗證的使用者存取,這可以提高安全性,防止未經身份驗證的存取。

  • smbpassword(SMB密碼):用於指定SMB身份驗證的密碼,密碼是用於驗證使用者身份的機密訊息,透過設定 smbpassword,您提供用於SMB身份驗證的密碼。

  • smbtype(SMB類型): 用於指定SMB協定的類型,SMB協定有不同的版本,smbtype允許您指定要使用的特定SMB類型。

  • smbusername(SMB使用者名稱):此參數用於指定SMB身份驗證的使用者名稱,使用者名稱是用於識別SMB存取權限的一部分,透過設定smbusername,提供您要使用的使用者名稱。

http.host, http.max-body-size, http.max-cache-size, http.max-pipeline, http.pipeline, http.truncated-ok, http.useragent
  • http.host(主機):用於指定要存取的主機或服務的位址,通常包括主機名稱或IP位址;透過設定http.host,您可以請求要存取哪個主機,這是進行網路通訊的關鍵訊息。

  • http.max-body-size(最大允許的請求主體大小):這個參數設定了允許的請求主體(通常是POST請求中的資料)的最大大小,用於限制接收到請求的主體大小,以防止過大的資料導致性能問題或安全問題。

  • http.max-cache-size(最大暫存大小):此參數設定了HTTP暫存可以使用的最大記憶體大小,HTTP暫存是用於儲存已經檢索過的資料,以便在後續的請求中加快資料檢索速度;透過設定http.max-cache-size,您可以控制暫存的大小。

  • http.max-pipeline(最大通道數):這個參數設定了允許的HTTP通道請求的最大數量,HTTP通道允許客戶端一次發送多個請求而不必等待每個請求的回應,透過設定http.max-pipeline,您可以控制通道請求的數量。

  • http.pipeline(啟用通道請求):這是一個布林值參數,用於啟用或禁用HTTP通道請求;如果設定為true,則允許使用HTTP通道,否則禁用。

  • http.truncated-ok(允許截斷的OK標誌):這是一個布林值參數,用於設定是否允許HTTP回應中的截斷內容;如果設置為true,則允許接收截斷的回應內容,否則拒絕。

  • http.useragent(用戶代理):這個參數用於設定HTTP請求中的用戶代理表頭,用戶代理是一個字串,通常用於識別發出請求的用戶端應用程序或瀏覽器;透過設定http.useragent,您可以自定義用戶代理訊息。


Nmap Script指令範例

nmap --script=http-phpself-xss -p80 <target>
nmap -sV --script http-self-xss <target>

Nmap Script指令輸出

PORT   STATE SERVICE REASON
80/tcp open  http    syn-ack
| http-phpself-xss:
|   VULNERABLE:
|   Unsafe use of $_SERVER["PHP_SELF"] in PHP files
|     State: VULNERABLE (Exploitable)
|     Description:
|       PHP files are not handling safely the variable $_SERVER["PHP_SELF"] causing Reflected Cross Site Scripting vulnerabilities.
|
|     Extra information:
|
|   Vulnerable files with proof of concept:
|   Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=calder0n.com
|     References:

Nmap Script作者:

Paulino Calderon

License: Same as Nmap--See https://nmap.org/book/man-legal.html



Nmap
Nmap

 

延伸閱讀

3 次查看

Comments


bottom of page