一、越權漏洞
越權訪問(Broken Access Control,簡稱BAC)是Web應用程序中一種常見的漏洞,由于其存在范圍廣、危害大,被OWASP列為Web應用十大安全隱患的第二名。所謂越權,顧名思義即超過當前用戶的權力范圍,越至不同用戶或獲得更高的系統權限的一類漏洞。具體到應用當中,當服務器處理用戶發起的請求時,沒有對該用戶的操作權限進行判定,從而導致不法分子利用該漏洞篡改用戶信息,達到增刪改查的目的。該類漏洞在當前的測試中可通過Fiddler手工測試或Appscan自動掃描測試。越權漏洞一般可分為兩類,即水平越權和垂直越權。
1.水平越權:水平越權是指角色權限相同的用戶之間能非法地互相操作對方的數據。例如,我們有用戶A和用戶B,可以通過Fiddler來代理抓包,截取用戶A登錄時的WEB請求報文,然后分析其Cookie、Uid等信息,通過將相關值篡改為用戶B的信息,從而發掘該類漏洞。
2.垂直越權:垂直越權是指不同角色權限的用戶之間能非法地互相操作對方的數據。該類漏洞的測試原理同水平越權,區別為被篡改的目標用戶B可能為系統管理員等更高權限的用戶,從而達到獲取不同層級權限的目的。
二、XSS跨站腳本漏洞
跨站腳本攻擊XSS(Cross Site Scripting)是指惡意攻擊者向Web頁面里插入惡意Script代碼,當用戶瀏覽該頁時,嵌入Web里面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。XSS漏洞可以理解為借彼之手、誘其上鉤。該漏洞一般通過php的輸出函數將JAVAscript代碼輸出到html中,通過用戶本地瀏覽器執行,所以測試XSS漏洞關鍵就是尋找未過濾的輸出函數。在一般的研發實踐中,通過查找常用函數如echo、print、var等來定位目標。具體XSS可以分為三類,分別為反射型XSS、存儲型XSS、DOM型XSS。
1.反射型XSS:該類漏洞在實際操作中較為常見,攻擊者通過使用帶有惡意腳本的鏈接接觸用戶,由用戶觸發XSS來實現攻擊。
主要步驟拆分:
①用戶收到帶有惡意腳本的鏈接
②通過訪問該目標抵達目標服務器
③HTML展示預期內容同時將未過濾的用戶輸入記入XSS
④該部分XSS惡意代碼向惡意服務器發起請求
⑤攻擊者從惡意服務器獲取用戶原始輸入
2.存儲型XSS:該類漏洞相對反射型更加隱蔽,攻擊者繞開用戶層預先在目標數據庫鋪底惡意腳本,實現用戶被動觸發進而實現信息竊取和后續攻擊。
主要步驟拆分:
①攻擊者在目標數據庫預埋惡意XSS腳本
②用戶正常操作訪問服務器并觸發該部分XSS
③HTML展示預期內容同時將未過濾的用戶輸入記入XSS
④該部分XSS惡意代碼向惡意服務器發起請求
⑤攻擊者從惡意服務器獲取用戶原始輸入
3.DOM型XSS:該漏洞是基于文檔對象模型(Document Objeet Model,DOM)的一種漏洞,通過利用當前URL將返回的HTML靜態文本寫入DOM中的document當做JavaScrip代碼執行,從而導致敏感信息泄露。
主要步驟拆分:
①類比反射型XSS攻擊者給用戶發送目標URL
②用戶訪問目標服務器
③服務器返回包含JavaScrip的HTML展示給用戶
④該部分XSS利用①中的URL返回給攻擊者
⑤攻擊者獲取敏感信息對目標發起攻擊
三、文件上傳漏洞
文件上傳類漏洞指文件上傳功能模塊或接口,未對文件類型、附件大小等信息進行校驗,從而導致攻擊者通過文件上傳接口上傳惡意文件。如果上傳的文件類型和訪問權限不作控制,則攻擊者可利用此漏洞上傳惡意腳本或后門程序,獲取服務器權限,控制服務器。同時,也可達到消耗服務器資源使其拒絕服務進而癱瘓。
文件上傳漏洞在測試中的關注要點:
1.關注是否限制了上傳文件的大小,通過比對Post支持的大小來判斷上傳大文件是否會導致內存、磁盤耗盡從而拒絕服務。
2.關注上傳文件類型是否進行了控制,通過修改文件名最后一個點號后面的后綴(包括點號)后做上傳,判斷是否可以繞過文件類型、擴展名等校驗判斷。
3.關注上傳的文件存放路徑安全性、上傳目錄解析、讀取、下載等權限控制。
以上三類為滲透測試中較為常見的漏洞,也是研發過程中容易被忽視的地方。工欲善其事,必先利其器。在針對漏洞的測試過程中,通過對Fiddler、Wireshark、Jmeter、Burpsuite等工具的應用可以在操作層面掌握截取、抓包、斷點、篡改、再請求等操作,結合研發過程中的通用實踐來判斷程序結構和目標函數。工具、知識及經驗的不斷積累與組合應用會助你更高效地開展滲透測試,發掘各類漏洞。
最后: 可以到個人V:atstudy-js可以免費領取一份10G軟件測試工程師面試寶典文檔資料。以及相對應的視頻學習教程免費分享!其中包括了有基礎知識、linux必備、Shell、互聯網程序原理、MySQL數據庫、抓包工具專題、接口測試工具、測試進階-Python/ target=_blank class=infotextkey>Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續集成、測試架構開發測試框架、性能測試、安全測試等。
這些測試資料,對于做【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!