top of page
作家相片Samuel

Nmap NSE Category vulns Script:http-sql-injection 透過爬蟲指令尋找 SQL 注入漏洞

已更新:8月26日


Nmap Script指令摘要


這個爬蟲指令用於尋找 HTTP 伺服器的漏洞,包含可能受到 SQL 注入攻擊的查詢 URL,它還會提取在找到的網站中的表單,並嘗試識別容易受到攻擊的欄位。


這個爬蟲指令對 HTTP 伺服器執行爬蟲動作,尋找包含查詢的 URL,接著它將製作 SQL 命令並與容易受到攻擊的 URL 結合,以獲得錯誤訊息;然後分析這些錯誤訊息,以確定URL是否容易受到SQL注入攻擊,這種方法使用了最基本的SQL注入技巧,但對於更複雜的攻擊,可能需要使用獨立的工具。 


值得注意的是,由於我們可能無法存取目標網站伺服器的真實主機名稱,這可能會阻礙對虛擬主機網站的存取。



Nmap Script指令參數

http-sql-injection.withinhost

僅爬取同一主機中的 URL,預設值: true。

http-sql-injection.errorstrings

要搜尋錯誤字串的檔案路徑(每行一個字串,以 # 開頭的行視為註釋),預設檔案為 nselib/data/http-sql-errors.lst,該檔案來自 fuzzdb 專案,詳情請參閱 http://code.google.com/p/fuzzdb/,如果有人發現該檔案中的某些字串導致大量誤報,請報告給 dev@nmap.org

http-sql-injection.withindomain

僅爬取相同網域中的 URL,這擴大了爬取範圍,這不同於 withinhost,無法與之結合使用;預設值:false。

http-sql-injection.url

開始爬取的 URL,這是相對於掃描主機的 URL,例如 /default.html,預設值:/。

http-sql-injection.maxpagecount

最大存取頁數限制,負值表示無限制,預設值:20。

slaxml.debug

slaxml 函式庫時用於除錯目的,當它被啟用時,函式庫將提供更多有關 XML 資料處理的訊息,這有助於開發人員在編寫 XML 解析代碼時,進行除錯;請查看 slaxml 函式庫以獲得更多訊息。

httpspider.doscraping, httpspider.maxdepth, httpspider.maxpagecount, httpspider.noblacklist, httpspider.url, httpspider.useheadfornonwebfiles, httpspider.withindomain, httpspider.withinhost

這些參數和選項用於控制 httpspider 進行網站爬取和分析,以下是這些參數的簡要解釋:

  • httpspider.doscraping:啟用或禁用網站爬取,當啟用時,工具將瀏覽網站的連結並提取有關網頁的訊息。

  • httpspider.maxdepth:指定網站爬取的最大深度,即遞歸檢查多少層的連結深度。

  • httpspider.maxpagecount:設定要存取的最大網頁數量限制。

  • httpspider.noblacklist:禁用黑名單檢查,這代表將存取所有連結,而不管它們是否在黑名單上。

  • httpspider.url:指定要開始爬取的網站起始URL。

  • httpspider.useheadfornonwebfiles:啟用或禁用對非網頁檔案的 HEAD 請求,以確定它們是否存在。

  • httpspider.withindomain:僅爬取同一網域內的連結,不跨域域。

  • httpspider.withinhost:僅爬取同一主機下的連結,不跨主機。

這些選項可用於自定義網站爬取的行為,以滿足特定需求,根據您的目的,您可以設定這些選項以限制或擴展工具的爬取行為;請詳閱 httpspider 函式庫瞭解更細部的應用。

smbdomain, smbhash, smbnoguest, smbpassword, smbtype, smbusername

這些參數和選項是與 smbauth 函式庫一起使用的,用於進行 SMB(Server Message Block)認證和存取 SMB 資源的相關操作,以下是它們的簡要解釋:

  • smbdomain:SMB 網域名稱,通常用於指定 SMB 伺服器所在的網域。

  • smbhash:SMB 密碼的哈希值 (Hash Value),有時候為了安全性考慮,SMB 密碼不會以明文形式傳遞,而是使用其哈希值。

  • smbnoguest:用於設定 SMB "guest" 帳號的存取權限;"guest" 帳號通常是一個無需密碼即可存取 SMB 資源的帳號,透過設定 smbnoguest,您可以確保只有經過適當認證的使用者能夠存取 SMB 資源。

  • smbpassword:SMB 帳號的密碼。

  • smbtype:SMB 認證的類型,這可以是不同的認證協定或方式,例如 NTLM(NT Lan Manager)。

  • smbusername:SMB 帳號的使用者名稱。

這些參數和選項通常在進行 SMB 資源的存取或認證時使用,以確保正確的身份驗證和權限授予;請參考smbauth 函式庫了解更多詳細訊息和如何使用它們。

http.host, http.max-body-size, http.max-cache-size, http.max-pipeline, http.pipeline, http.truncated-ok, http.useragent

這些參數與 http 函式庫相關,用於設定與 HTTP 通訊有關的行為,以下是它們的簡要解釋:

  • http.host:設定 HTTP 請求的目標主機(Host),這是要存取的網站主機名稱或 IP 地址。

  • http.max-body-size:設定 HTTP 回應主體 (內容) 的最大大小,如果主體超出此大小,則可能會被截斷。

  • http.max-cache-size:設定 HTTP 暫存的最大大小,這控制儲存在暫存中 HTTP 回應的數量。

  • http.max-pipeline:設定最大的 HTTP 通道大小,它控制允許同時等待處理的請求數量。

  • http.pipeline:設定是否啟用 HTTP 通道;啟用時,多個請求可以並行發送。

  • http.truncated-ok:設定是否允許截斷的 HTTP 回應,如果啟用,則可能會接受截斷的回應。

  • http.useragent:設定 HTTP 請求中的用戶代理(User-Agent),這是標示客戶端應用程序的字串。

這些參數用於自定義和設定與 HTTP 請求和響應有關的行為,以便更好地滿足特定需求;詳細資訊可以在相關的 http 函式庫中找到。


Nmap Script指令範例

nmap -sV --script=http-sql-injection <target>

Nmap Script指令輸出

PORT   STATE SERVICE
80/tcp open  http    syn-ack
| http-sql-injection:
|   Possible sqli for queries:
|   Possible sqli for forms:
|     Form at path: /forms/f1.html, form's action: a1/check1.php. Fields that might be vulnerable:
|       f1text
|     Form at path: /forms/a1/../f2.html, form's action: a1/check2.php. Fields that might be vulnerable:
|_      f2text

Nmap Script作者:

Eddie Bell Piotr Olma

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



Nmap
Nmap

 

延伸閱讀

2 次查看

Comments


bottom of page