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