Netsparker Standard如何掃描RESTful API Web服務
掃描RESTful API Web服務
REST(代表性狀態轉移)是一種可用于與Web服務進行通信的體系結構樣式。REST與SOAP等協議有很多共同點。它用作兩個應用程序之間或應用程序與在線服務之間的通信機制。許多移動Web應用程序在后端與RESTful API通信,以便與在線服務通信。
您可以在Netsparker Standard版本中掃描RESTful API Web服務。
Web服務和REST API之間的差異
許多Web服務依賴于復雜的通信機制,例如SOAP,RPC和CORBA。REST對所有四個CRUD(創建,讀取,更新,刪除)操作都使用標準的HTTP方法。
REST API中的常用HTTP方法(動詞)
下表列出了REST中常用的HTTP方法。
| 方法 | 描述 |
|---|---|
| POST | 創建資源 |
| GET | 檢索資源 |
| PUT | 更改資源狀態或更新資源 |
| DELETE | 刪除或刪除資源 |
掃描REST API接口的挑戰
與RPC等不同,REST具有簡單的結構,因此很容易被用戶使用和理解。例如,許多基于REST的Web服務可以提供JSON或XML格式的響應。但是,同樣的好處是使自動化的Web漏洞掃描程序非常難以爬網和攻擊。
缺乏REST標準
REST API沒有統一的標準,WSDL和其他類似協議也沒有。大多數RESTful Web服務都有自己的文檔,對開發人員有用,但對自動化Web漏洞掃描程序沒有用。
許多項目旨在標準化REST API:
- Swagger
- WADL(Web應用程序描述語言)
- RAML
- I/O文件
在URL中使用參數
自動掃描程序在掃描RESTful Web服務中的漏洞時遇到的另一個挑戰是REST API使用URL中的參數。
例如,在下面的HTTP GET請求中,123是參數,而不是Web應用程序中的目錄:
Netsparker使用啟發式URL重寫技術處理此問題,該技術可以自動識別和掃描URL中的參數。在REST API中,工作原理有所不同。
掃描RESTful API Web服務中的漏洞
有三種掃描RESTful API的方法。每個概述如下:
- 手動導入定義文件(Swagger或WADL)
- 在搜尋過程中自動發現RESTful API
- 手動導入RAW HTTP請求
手動導入定義文件
當您導入Swagger,WADL或WordPress REST API定義文件時,Netsparker Web應用程序安全掃描程序將解析該定義文件并為API中可用的每個資源創建一個鏈接。要導入Swagger,WADL或WordPress REST API定義文件,您應該:
如何在Netsparker Standard中手動導入SWAGGER,WADL或WordPress定義文件
- 打開Netsparker Standard。
- 在“ 啟動新網站或Web服務掃描” 對話框中,單擊“ 導入的鏈接”。顯示導入的鏈接選項。

- 從“ 從文件導入” 下拉列表中,選擇OpenAPI(以前稱為Swagger),Web應用程序描述語言 或WordPress REST API。顯示“導入鏈接”對話框。
- 選擇定義文件。
- 點擊保存。
- 掃描程序導入所有鏈接和參數后,您可以在“ 導入的鏈接 ”列表中看到它們, 如以下屏幕截圖所示。

在導入過程中,將自動生成URL重寫規則,以便掃描RESTful API中的每個參數。

在Netsparker Enterprise中導入RESTful Web服務定義文件時,URL重寫規則未顯示在“ 啟動新掃描” 對話框中,但是 一旦掃描完成,它們將在“ 知識庫” 節點中報告。
在搜尋過程中自動發現RESTful API
與掃描其他Web應用程序和服務時類似,可以從“身份驗證”選項卡配置身份驗證。
如何在搜尋期間自動發現RESTful API
如果在掃描過程中識別出Netsparker Web應用程序安全掃描程序,它將自動導入,爬網和掃描REST API Web服務。一旦掃描程序識別了定義文件,它將自動生成URL重寫規則,以便它可以掃描Web服務中的所有參數。
當掃描程序在爬網過程中識別出RESTful API Web服務時,它還將在“ 知識庫” 節點中報告該服務。這就是Netsparker Enterprise中“技術報告”的“知識庫”部分中的REST API節點。

這就是Netsparker Standard中“掃描摘要”儀表板中REST API的外觀。

如果掃描程序在爬網階段(通過JavaScript或其他方式)識別出對RESTful API Web服務的引用,但隨后又未能識別定義文件,則一旦掃描儀具有必要的示例,它仍將嘗試試探性地創建URL重寫規則以進行掃描所有參數。
手動導入RAW HTTP請求
如果無法使用Swagger或WADL定義文件,或者在對Web應用程序進行爬網期間無法識別RESTful API,則可以通過RAW HTTP文件導入API的鏈接。
您可以通過第三方代理工具(例如Fiddler)捕獲HTTP請求并在開始掃描之前將其導入。以下是受支持的代理文件的列表:
- 打p日志文件(* .xml)
- Fiddler會話存檔(* .saz)
- HTTP存檔文件(* .har)
- Paros日志文件(* .txt)
請注意,使用此方法時,掃描程序不會自動生成URL重寫規則。 手動配置URL重寫規則。
如何手動導入RAW HTTP請求
手動導入這些工具的過程與導入SWAGGER或WALD的過程相同。
Netsparker Standard 中文漢化使用教程
推薦文章: