<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    API接口滲透測試

    VSole2022-03-25 22:15:35

    1 API 接口介紹

    1.1 RPC(遠程過程調用)

    遠程過程調用(英語:Remote Procedure Call,縮寫為 RPC)是一個計算機通信協議。該協議允許運行于一臺計算機的程序調用另一臺計算機的子程序,而程序員無需額外地為這個交互作用編程。如果涉及的軟件采用面向對象編程,那么遠程過程調用亦可稱作遠程調用或遠程方法調用,例:Java RMI。

    RPC 一般直接使用 TCP 協議進行通信,通常不涉及到 HTTP。HTTP 下面有2種技術:

    • XML-RPC(https://zh.wikipedia.org/wiki/XML-RPC)
    • JSON-RPC(https://zh.wikipedia.org/wiki/JSON-RPC)

    Web service 和 RESTful API 都可算作遠程過程調用的子集。

    1.2 Web Service

    Web Service 是一種服務導向架構的技術,通過標準的Web協議提供服務,目的是保證不同平臺的應用服務可以互操作。

    根據 W3C 的定義,Web 服務(Web service)應當是一個軟件系統,用以支持網絡間不同機器的互動操作。網絡服務通常是許多應用程序接口(API)所組成的,它們透過網絡,例如國際互聯網(Internet)的遠程服務器端,執行客戶所提交服務的請求。

    盡管W3C的定義涵蓋諸多相異且無法介分的系統,不過通常我們指有關于主從式架構(Client-server)之間根據 SOAP 協議進行傳遞 XML 格式消息。無論定義還是實現,Web 服務過程中會由服務器提供一個機器可讀的描述(通常基于WSDL)以辨識服務器所提供的 Web 服務。另外,雖然 WSDL 不是 SOAP 服務端點的必要條件,但目前基于Java 的主流 Web 服務開發框架往往需要 WSDL 實現客戶端的源代碼生成。一些工業標準化組織,比如 WS-I,就在 Web 服務定義中強制包含 SOAP 和 WSDL。

    Web Service 是一種比較“重”和“老”的 Web 接口技術,目前大部分應用于金融機構的歷史應用和比較老的應用中。

    1.3 RESTful API

    REST,全稱是 Resource Representational State Transfer,通俗來講就是,資源在網絡中以某種表現形式進行狀態轉移。分解開來:

    • Resource:資源,即數據(前面說過網絡的核心)。比如 newsfeed,friends等;
    • Representational:某種表現形式,比如用JSON,XML,JPEG等;
    • State Transfer:狀態變化。通過HTTP動詞實現。

    RESTful API 就是符合 REST 風格的 API,傳遞數據也是2種形式:

    • XML,少見
    • json,常見,現在 Web 應用基本使用這種形式的 API。

    1.4 MVC、MVP、MVVM

    Web 應用程序和 APP 應用程序的 API 跟目前的流行框架和模式相關,主要有3種模式:MVC、MVP、MVVM。

    MVC 將整個應用分成 Model、View 和 Controller 三個部分,而這些組成部分其實也有著幾乎相同的職責。

    • 視圖:管理作為位圖展示到屏幕上的圖形和文字輸出;
    • 控制器:翻譯用戶的輸入并依照用戶的輸入操作模型和視圖;
    • 模型:管理應用的行為和數據,響應數據請求(經常來自視圖)和更新狀態的指令(經常來自控制器);

    此類模式和架構的應用越來越多導致 API 接口的應用也越來越流行。想了解更多可以在網上查找相關資料。

    2 API 測試環境和測試工具

    2.1 Web Service 測試

    2.1.1 找 Webservice 接口

    Google hacking

    • inurl:jws?wsdl
    • inurl:asmx?wsdl
    • inurl:aspx?wsdl
    • inurl:ascx?wsdl
    • inurl:ashx?wsdl
    • inurl:dll?wsdl
    • inurl:exe?wsdl
    • inurl:php?wsdl
    • inurl:pl?wsdl
    • inurl:?wsdl
    • filetype:jws
    • filetype:asmx
    • filetype:ascx
    • filetype:aspx
    • filetype:ashx
    • filetype:dll
    • filetype:exe
    • filetype:php
    • filetype:pl
    • filetype:wsdl wsdl

    fuzzing

    爬蟲

    2.1.2 測試工具

    涉及主要工具:

    • Soap UI PRO,滲透測試流程的發起,通信報文的解析、集合payload之后通信報文的重新組裝等,14天試用,可以做自動化測試。
    • SoapUI Free,手工測試
    • SOAPSonar,SOAP UI 的替代。
    • Burp Suite,代理攔截,跟蹤通信過程和結果,對通信進行重放和二次處理等。
    • WSSAT
    • WS-Attacker

    2.1.3 測試項目

    • Fuzzing
    • XSS /SQLi/ Malformed XML
    • File Upload
    • Xpath Injection
    • XML Bomb (DoS)
    • Authentication based attacks
    • Replay attacks
    • Session fixation
    • XML Signature wrapping
    • Session timeout
    • Host Cipher Support/ Valid Certificate/ Protocol Support
    • Hashing Algorithm Support

    2.1.4 手工測試方法

    主要使用 Soap UI Open Source,有安全測試Case,需要配置 SOAP 代理到 Burp,數據流,現在的版本是5.4.0。

    代理配置

    可以用 Burp 重放 SOAP 的探測 Payload。

    使用 Soap UI Open Source,測試步驟:

    • 創建工作空間
    • 新建 SOAP 項目
    • 增加 WSDL,配置名稱和 WSDL 鏈接
    • 選擇要測試的 TestSuite,增加一個安全測試

    2.1.5 自動化測試

    SOAP 配置,2步,“File”-“Preference”-“Proxy”,設置 Burp 代理

    直接在 Soup UI 主菜單上選擇運行一個測試。

    在彈出窗口中輸入 WSDL 地址。

    SUAP UI 會自動探測接口。然后在項目-測試Case的右鍵菜單中選擇安全測試

    運行安全測試。

    Burp 代理會捕獲所有的測試請求

    其他工具介紹

    WSSAT,選擇加載存在 WSDL 列表的文件,運行。

    WS-Attacker

    AWVS 的掃描也能直接測試 Web Service

    2.2 RESTful API 測試

    2.2.1 測試工具

    常見的瀏覽器插件

    • Chrome Restlet Client

    - Firefox RESTClient

    客戶端工具

    • Postman

    • Swagger

    通常使用 Postman 的情況多些,有機會的話問下開發如何配置測試環境,直接配置一套一樣的。

    Postman 的代理配置:

    3 常見 API 相關漏洞和測試方法

    還是主要以 Restful API 說明。

    3.1 邏輯越權類

    本質上可以說是不安全的直接對象引用,可以通過修改可猜測的參數獲取不同參數下的響應結果。參數可以是用戶名、用戶 ID,連續的數字,變形的連續數字(各種編碼或哈希),通過直接修改參數值完成越權的操作。

    示例:

    • https://wooyun.shuimugan.com/bug/view?bug_no=189225
    • https://wooyun.shuimugan.com/bug/view?bug_no=150462
    • https://wooyun.shuimugan.com/bug/view?bug_no=140374
    • https://wooyun.shuimugan.com/bug/view?bug_no=106709

    3.2 輸入控制類

    XXE,Restful API 的注入漏洞,XSS,溢出,特殊字符的處理。

    示例:

    • https://wooyun.shuimugan.com/bug/view?bug_no=211103
    • https://wooyun.shuimugan.com/bug/view?bug_no=132270
    • https://wooyun.shuimugan.com/bug/view?bug_no=8714

    3.3 接口濫用

    沒有請求頻率限制導致的各種**和遍歷,如短信驗證碼**、登錄**、手機號遍歷、身份證遍歷等。

    示例:

    • https://wooyun.shuimugan.com/bug/view?bug_no=141419
    • https://wooyun.shuimugan.com/bug/view?bug_no=66571
    • https://wooyun.shuimugan.com/bug/view?bug_no=36058
    • https://wooyun.shuimugan.com/bug/view?bug_no=147334

    3.4 信息泄露

    包括越權導致的信息泄露、畸形請求導致的報錯響應。

    示例:

    • https://wooyun.shuimugan.com/bug/view?bug_no=171313
    • https://wooyun.shuimugan.com/bug/view?bug_no=160095
    • https://wooyun.shuimugan.com/bug/view?bug_no=127457

    3.5 HTTP 響應頭控制

    關于響應頭:

    • 發送 X-Content-Type-Options: nosniff 頭。
    • 發送 X-Frame-Options: deny 頭。
    • 發送 Content-Security-Policy: default-src 'none' 頭。
    • 刪除指紋頭 - X-Powered-By, Server, X-AspNet-Version 等等。
    • 在響應中強制使用 content-type。

    3.6 服務端配置漏洞

    如服務端版本信息泄露,或服務端程序本身存在漏洞等。

    4 API 安全加固

    根據上面講的測試方法,一般需要做好:

    • 認證和授權控制
    • 用戶輸入控制
    • 接口請求頻率的限制
    • 輸出控制
    • 添加安全響應頭參數

    參考 API-Security-Checklist 和歷史上的滲透測試結果設計適合自己組織的 API 安全開發規范。

    參考

    Web Service 的滲透測試參考:

    • https://blog.csdn.net/cq1982/article/details/44728489
    • https://t0data.gitbooks.io/burpsuite/content/chapter17.html
    • https://www.owasp.org/index.php/Web_Service_Security_Testing_Cheat_Sheet
    • https://www.soapui.org/security-testing/getting-started.html
    • http://blog.securelayer7.net/web-services-api-penetration-testing-part-2/
    • https://www.soapui.org/security-testing/getting-started.html
    • https://www.anquanke.com/post/id/85910

    Restful API 的參考:

    • https://github.com/shieldfy/API-Security-Checklist
    • https://www.owasp.org/index.php/REST_Security_Cheat_Sheet
    soap滲透測試
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    API接口滲透測試
    2022-03-25 22:15:35
    MVC 將整個應用分成 Model、View 和 Controller 三個部分,而這些組成部分其實也有著幾乎相同的職責。SoapUI Free,手工測試SOAPSonar,SOAP UI 的替代。Burp Suite,代理攔截,跟蹤通信過程和結果,對通信進行重放和二次處理等。代理配置可以用 Burp 重放 SOAP 的探測 Payload。SUAP UI 會自動探測接口。
    Web Service滲透測試總結
    WebLogic是由美國Oracle公司出品的一application server,準確的說就是一個基于JAVAEE而開發的一個中間件,類似Tomcat,WebLogic是一個用于開發,集成,部署與管理大型分布式Web應用,網絡應用和數據庫的java應用服務器。將java動態功能與java Enterprise標準的安全性引入大型網絡應用的開發,集成,部署與管理之中。
    滲透測試Tips
    2022-04-13 06:38:50
    知己知彼,百戰不殆1、如果提示缺少參數,如{msg:params error},可嘗使用字典模糊測試構造參數,進一步攻擊。
    WinRM 作為 Windows 操作系統的一部分,是一項允許管理員在系統上遠程執行管理任務的服務。
    很多人把這個原因歸結于KB2871997補丁,實際上不然,這個事情的成因實際是UAC在搗亂。RID為500的賬戶和屬于本地administrators組的域用戶在通過網絡遠程鏈接時,默認就是高權限令牌。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类