閱讀需知
這是總結的是一些通用安全測試用例,但安全測試遠不如此,這些用例只能算入門!!
漏洞掃描
定義:對系統的URL進行漏洞掃描,掃描系統開放的端口、服務和存在的漏洞
前置條件 | 步驟 | 結果 |
我們公司用綠盟掃描器 | 登錄掃描器進行WEB掃描 | |
在漏洞掃描中選擇WEB掃描,輸入待掃描的URL地址 | 查看掃描報告是否有漏洞,其中高風險和中風險漏洞需要修復 | |
查看掃描報告是否有漏洞,其中高風險和中風險漏洞需要修復 | 1、確認高風險和中風險漏洞都修復完成 2、修復風險后需注意不要影響系統原先功能的正常性,建議做影響范圍的功能回歸測試,保證系統正常 |
|
定期檢查 | 同一個URL,3個月內掃描一次 |
明文傳輸
定義:對系統傳輸過程中的敏感內容是明文&密文進行檢查
系統傳輸敏感信息場景:登錄、注冊、支付、修改密碼
系統敏感信息:登錄密碼、支付金額、注冊的手機號碼、身份證、郵箱等信息
步驟 | 結果 |
對傳輸敏感信息場景進行抓包 | |
分析其數據包中的相關敏感字段是否為明文 | 分析其數據包中的相關敏感字段是否為明文 |
越權訪問
定義:測試能否通過URL地址獲取管理員及其他用戶信息
1、出現admin、user、system、pwd等敏感目錄的URL地址
如:https://walmon-competition.gz.cvte.cn/competition_api/admin/v1/user/role_user_unit
2、垂直越權場景:當系統存在多個不同權限的管理員時,低權限的管理員不能訪問或操作到高權限的管理的資源
3、水平越權場景:當系統存在多個需要登錄用戶,A用戶不能訪問B用戶的資源
步驟 |
檢查URL是否存在admin/user/system/pwd等敏感目錄 |
垂直越權: 1.使用高權限的管理員登錄后,訪問一些他獨有的資源,或者進行一些特權操作,記錄下接口信息 2.退出登錄后,使用低權限用戶登錄,重新執行步驟1記錄下來的接口,查看是否能夠操作成功 |
水平越權: 1. 使用A用戶登錄后,打開A用戶所獨有的個人資源的URL或者進行一些修改操作,記錄下接口信息 2. 退出登錄后,使用B用戶登錄,重新執行步驟1記錄下的接口,看是否能夠訪問或者操作成功。 |
反射性跨站腳本
定義:測試系統是否對輸入進行過濾或轉移,規避用戶通過跨站腳本攻擊造成風險
跨站腳本攻擊場景:搜索框、輸入框、留言、上傳文件
步驟 | 結果 |
在系統的URL地址后面,輸入測試語句: <img src=x onerror=alert(1)> <script>alert("1") </script>; |
是否會有彈窗 |
在系統的搜索框、輸入框、留言,輸入測試語句: 同上 |
像留言、評論、公告等輸入內容都會存到數據庫 前端查看對應內容時是否會有彈窗 |
在上傳文件功能中,往需要導入的文件中輸入測試語句: 同上 |
文件上傳
定義:測試能否上傳木馬、病毒、色情圖片等惡意圖片
步驟 | 結果 |
生成一個測試的惡意文件,如一個txt文檔,內容為<img src=x onerror=alert(1)> 文件名字最好為英文,如test |
|
點擊上傳功能,抓包攔截上傳接口,將上傳的文件后綴修改為html文件(訪問該html文件) |
可正常執行惡意語句,則有錯 |
越權文件下載
定義:測試URL中是否包含文件名或文件目錄,嘗試提交參數值查看是否可下載或讀取其他目錄的文件內容
文件下載場景:文件下載、文件讀取功能
測試url:包含文件名或文件目錄的url
步驟 | 結果 |
進行文件下載操作,找到文件下載路徑 http://www.example.com/donwload.jsp?filename=test12789.pdf |
|
修改下載路徑中的文件參數值,檢查訪問效果 http://www.exbugmpjsp?filename=test.pdf |
如果可以下載修改后的文件,則證明存在漏洞 |
修改下載路徑,通過../對路徑進行跳轉嘗試下載其他目錄下的文件 http://www.example.com/donwload.jsp?filename=../../WEB-INF/web.xml |
如果可以下載web.xm文件,則有bug |
短信/郵箱驗證
定義:測試短信、郵箱驗證方式是否進行安全設置
觸發短信、郵箱驗證碼驗證相關的場景:找回或重置密碼、注冊、邀請注冊、引流活動分享
步驟 | 結果 |
操作密碼重置、找回密碼等功能,觸發跳轉到輸入手機號或郵箱的頁面 |
|
輸入測試手機號或郵箱,看能否一直連續無間隔 發送短信驗證碼,造成短信轟炸 |
短信轟炸若存在,及證明存在該漏洞,報BUG 觸發短信、郵件發送的前提必須有安全驗證(驗證碼、滑動驗證等),防止短信被刷 |
如果有對應的驗證設置,輸入手機號、郵箱,同步開始抓包,查看數據包能否抓取到發送的驗證碼信息 |
如果可以抓取到,則驗證碼可以被修改,存在漏洞,報BUG |
鑒權缺失
定義:測試需要登錄、鑒權才可操作的系統中可修改資源的相關接口,鑒權是否可靠
測試對象:可以修改資源的接口
步驟 | 結果 |
定義:測試需要登錄、鑒權才可操作的系統中可修改資源的相關接口,鑒權是否可靠 測試對象:可以修改資源的接口 |
1、如果參數都是完全可以被預期的話。即除了鑒權的cookie 外,header中和body表單中的所有參數都可以被事先知道。那么表明存在漏洞。報BUG 2、如果header或者body中有隨機的token或者需要驗證碼之類的,則不存在漏洞 |
抓包、分析接口的參數,觀察鑒權參數,如cookie 或者access token等 |
1、如果觀察cookie 或者access token,可掌握其規律,如為某固定單一不變的值或使用用戶ID作為cookie 的值,會話控制信息可以被猜測,鑒權不可靠,表明存在漏洞。報BUG |
密碼健壯性
定義:測試密碼、驗證碼驗證的方式是否可靠,是否可以被暴力猜測直至命中
步驟 | 結果 |
操作輸入密碼、驗證碼的場景,使用抓包工具,修改接口中的密碼、驗證碼,多次嘗試輸入錯誤的驗證碼 |
可以被暴力猜測直至命中,則存在漏洞 |
使用工具重復請求接口(類似登錄接口)多次(密碼錯誤、驗證碼錯誤情況下、100次以上 |
使用工具重復請求接口(類似登錄接口)多次(密碼錯誤、驗證碼錯誤情況下、100次以上 |
檢查密碼設置、驗證碼生成的業務邏輯設計 |
1、若設置密碼時就未考慮密碼復雜程度,允許用戶設置弱密碼 (如設置賬號必須滿足數字+字母+特殊字符,8位以上。規避123456、aaaaaaa、qwerty等弱密碼),用戶賬號安全可能存在漏洞,可反饋給研發進行整改,推進賬號安全 2、若驗證碼生成邏輯簡單,或者結果集合小,或為簡單的圖片驗證,則可能存在漏洞,可反饋開發進行整改,盡量使用更安全的驗證設計(如行為驗證 ) |
對密碼找回及修改密碼功能,檢查密碼是否有權限管控,只能修改或設置自己的密碼,規避通過該功能修改別人的密碼 |
若可通過密碼找回、修改密碼、賬號申訴等功能,修改其他人的賬號密碼,則存在漏洞,報BUG |
數據安全
定義:檢查系統中敏感數據的存儲是否安全
敏感數據:密碼、身份證、家庭住址、銀行卡號、手機號、真實姓名
步驟 |
檢查敏感數據是否加密存儲,檢查對應的數據表(mysql、redis)數據記錄,防止拖庫后信息泄露 |
檢查敏感數據在操作界面展示上是否脫敏 如:密碼顯示隱藏選項,手機號、身份證僅顯示首尾等134****4250,220**********2129 |
檢查數字設置安全,是否限制輸入負數或超大數額 |