書名: 黑客攻防從入門到精通(Web技術實戰篇)作者名: 明月工作室 王棟本章字數: 992字更新時間: 2020-05-22 18:52:22
5.4 對訪問控制的攻擊方法
黑客在攻擊應用程序的訪問控制機制時,需要了解應用程序的功能是否允許用戶訪問他們的特定數據;找出是否存在各種級別的用戶,如普通用戶、會員、管理員等允許他們訪問不同的功能;管理員是否能對應用程序進行配置和監控;發現應用程序的哪些功能或數據資源最有可能幫助攻擊者提升當前的權限,才有可能找到對訪問控制的攻擊方法。
5.4.1 使用其他賬戶訪問應用程序
使用其他賬戶訪問應用程序是最簡單、最有效的攻擊訪問控制機制的方法,但是對應用程序的訪問控制機制進行徹底攻擊需要耗費大量的時間和精力。通常,黑客使用某些工具幫助自己完成某些工作,以提高攻擊的速度和可靠性。
借助Brup Suite,可以使用不同的兩個用戶賬戶來攻擊應用程序內容,以比較不同賬戶訪問的內容存在哪些差異,如圖5-18所示。

圖5-18 Brup Suite操作界面
5.4.2 直接訪問服務器API端方法的請求
如果應用程序使用直接訪問服務器API端方法的請求,正常情況下,使用上述技巧即可以確定這些方法中任何訪問控制漏洞,但是,還應該查找是否存在其他未受正確保護的API。
使用一個眾所周知的請求調用的Servlet為例:
POST / svc HTTP / 1.1 Accept-Encoding:gzip , delfate Host:wahh-app Content-Length:37 Servlet=com.ibm.ws.webcontainer.httpsession.IBMTrackerDebug
通過訪問其他Servlet執行未授權操作來攻擊應用程序。確定任何遵循JAVA命名約定(如get, set, add)或明確指定包結構(如com.XXXname.Classname)的參數,然后找到某個可用接口,或者在公共資源中查找,以確定其他任何可以訪問的方法。
5.4.3 URL直接訪問Web程序中的靜態資源
如果受應用程序保護的靜態資源最終可以通過指向資源文件本身的URL直接訪問,這時應該進行攻擊測試未授權用戶是否可以直接請求這些URL。
遍歷訪問受保護靜態資源的正常過程,獲取用于最終訪問該靜態資源的URL示例,然后使用權限較低的用戶賬戶利用以確定的URL直接訪問該資源,最后如果攻擊成功,總結受保護資源所使用的命名方案。之后可以設計一個自動攻擊,獲取有用的數據或內容。
5.4.4 利用HTTP平臺級控制的漏洞進行入侵
雖然沒有現成的辦法用于發現應用程序的訪問控制是否對HTTP實施了平臺級控制,但是可以通過一些簡單的方法來確定應用程序是否存在可以攻擊的漏洞,具體步驟如下。
1 使用高權限賬戶,執行一些敏感操作的特權請求,如注冊賬戶或者修改賬戶信息等操作。
2 如果HTTP方法被修改,應用程序是否仍然執行請求的操作,應測試的HTTP方法包括POST、GET、HEAD、任何無效的HTTP方法等。
3 如果應用程序執行任何使用與最初的方法不同的HTTP方法的請求,則應使用上述方法技巧,通過權限較低的賬戶對針對的這些請求實施的訪問控制進行攻擊。