1、登陸認證模塊
2、業務辦理模塊
3、業務授權訪問模塊
4、輸入輸出模塊
5、回退模塊
6、驗證碼機制
7、業務數據安全
8、業務流程亂序
9、密碼找回模塊
10、業務接口調用模塊
一、 登陸認證模塊測試
1、 暴力破解測試
使用burp suite,利用字典進行測試
2、 本地加密傳輸冊數(查看數據是否采用SSL加密方式加密)
使用wireshark
3、 session測試
*固定會話:在退出時,記錄當前瀏覽器授權的sessionID值,再次登陸時將本次的值與上次的對比,如果相同則存在固定會話風險。使用burpsuite工具。
*會話注銷:退出后判斷授權認證的sessionID值是否有效,若依然有效則存在風險。
*會話超時時間:對系統會話授權認證時長進行測試。登陸成功后如果在固定時間內(例如30分鍾)該用戶與服務器沒有任何交互操作,看是否可以繼續操作。如果可以則 存在風險。使用 burpsuite工具。
4、cookie仿冒測試
對系統會話中授權認證cookie中會話身份認證標識進行篡改,看返回的是否是篡改后的身份的信息。使用burp suite
5、密文對比認證測試(提交的賬號密碼先加密再傳輸給服務器,可能泄露加密方式)
使用burp suite 抓包並根據頁面代碼分析是否加密看是什么加密。如果知道了加密方式,就在暴力破解Payload Processing中加上加密方式(例如Hash MD5),然后配置完成進行暴力破解,就可能爆出來密 碼
6、登錄失敗信息測試
根據系統返回的登陸失敗信息進行邏輯分析,判斷是否可以才出來賬號或密碼
二、 業務辦理模塊測試
1、 訂單ID篡改測試
注冊一個普通賬號,然后抓包修改、遍歷ID看是否可以查看到他人的訂單內容
2、 手機號碼篡改測試
當請求參數中有手機號參數時,可以嘗試修改他,測試是否含有越權漏洞。
3、 用戶ID篡改測試
請求中有參數時,並且此參數可以顯示用戶的隱私信息,可以嘗試篡改ID越權訪問其他用戶隱私信息。注冊一個普通賬號遍歷ID,獲得其他用戶信息,篡改ID看是否返回其他用戶信息
4、 郵箱和用戶篡改測試
發送郵件或站內信息時,抓包篡改發信請求,可偽造發信人,發送釣魚信件
5、 商品編號篡改測試
在提交訂單時,抓包篡改商品編號,看是否可以交易成功
6、 競爭條件測試
再提交訂單時,設置多個線程重放此包,可能就有個別請求繞過金額、次數的判斷,交易成功。就是在一個請求讀取了另一個還未提交的請求的數據,從而實現了交易的成功。
三、 業務授權訪問模塊
1、 非授權訪問測試
登陸需要通過認證的頁面,切換瀏覽器再次訪問此頁面,如果訪問成功則存在漏洞
2、 越權測試
水平越權:相同的權限,不同的用戶
正常查看更改自己的信息,抓包篡改ID,爆破參數,查看其他同權限賬號的信息
垂直越權:使用權限底的用戶可以訪問權限高的用戶
登陸普通賬號,抓包修改ID為高權限的ID,成功查看高權限的信息。
例如,先登錄一個賬號密碼均為111的普通賬號,然后點擊修改密碼,抓包會看到兩個參數一個是賬號一個是密碼,賬號改為admin(超級管理員的賬號),密碼就是789(隨意),提交修改后的數據包,這 是admin的密碼已經改成了789。
四、 輸入輸出模塊測試
1、 SQL注入測試
數字型注入:and 1=1 and 1=2
字符型注入:加‘
2、 XSS注入測試
反射型XSS:在一些搜索、建議、留言板、投訴等輸入框中輸入簡單腳本,如果能彈出對話框則存在xss漏洞
存儲型XSS:在新建、編輯中可以添加腳本看是否會被執行
3、 命令執行測試
測試中沒有過濾的參數:cmd=、command、excute=
命令連接符:& | || ;
Php系統命令執行函數:
System函數:輸出執行結果返回最后一行
string system(string command, int [return_var])
exec函數:執行外部程序
string exec(string command, string [array], int [return_var])
popen函數:打開文件。
int popen(string command, string mode)
shell_exec函數:
反引號``:
五、 回退模塊測試
對業務完成時,例如修改密碼完成后,進行回退,看是否可以退回到修改密碼的頁面,如果可以則存在業務回退漏洞
六、 驗證碼機制測試
1、 驗證碼暴力破解測試
填寫任意手機號發送驗證碼,然后抓包暴力破解驗證碼
2、 驗證碼重復使用測試
在一些網站的登陸或評論等頁面,進行測試,再提交成功一個信息之后。抓取提交的數據包,使用發包工具反復進行提交,看是否成功提交了多個信息
3、 驗證碼客戶端回顯測試
當驗證碼在客戶端生成時,客戶端需要和服務器進行驗證碼交互發送。可利用瀏覽器的工具查看詳細信息。在找回密碼頁面輸入手機號等信息后,獲取驗證碼之后,通過瀏覽器查看返回包的信息,如果包短 信驗證碼,則存在此問題。
4、 驗證碼繞過測試
在注冊頁面,隨意填寫信息獲取驗證碼,然后填寫任意驗證碼,提交請求並burp suite抓包,選擇Do intercept-Response to this request,單擊Forword,就是網站返回的數據包,然后修改返回包的信息,轉 發返回的數據包,查看能否注冊成功
5、 驗證碼自動識別測試
在登陸網站的網頁,通過刷新驗證碼觀察驗證碼的規律,進行圖像二值化、去干擾等處理,並進行對比儲存成功識別的驗證碼,截入工具,然后標記進行暴力破解。
PKAV HTTP Fuzzer工具
七、 業務數據安全測試
1、 商品支付金額篡改測試
抓包修改支付頁面的金額
2、 商品訂購數量篡改測試
抓包修改數量
3、 前端JS限制繞過測試
抓包修改數量
4、請求重放測試
在生成訂單時抓取訂購請求,觀察訂購相同的商品token、可變參量是否是隨機的,如果是,檢查這些數在訂單中是否唯一,然后嘗試重放之前已經完成的訂單請求,看訂單是否生效
5、 業務上線測試
通過抓包修改為業務預期范圍外的業務,看服務器會不會有正確回應
八、 業務流程亂序測試
業務流程繞過測試
訪問注冊頁面,注冊賬戶之后充值提交並抓取數據包,填寫任意金額然后並抓包,獲取訂單號,利用訂單號構造充值鏈接並訪問,看是否能充值成功
九、 密碼找回模塊測試
1、 驗證碼客戶端回顯測試
填入要找回的密碼,然后發送驗證碼抓包,查看響應數據中的驗證碼就可以繞過了
2、 驗證碼暴力破解測試
先用自己的手機號發送驗證碼,找到規律之后,確認可以用暴力枚舉,先任意填寫幾位驗證碼然后抓包,暴力破解出驗證碼,就可以修改密碼了
3、 接口參數賬號修改測試
在修改密碼或者找回密碼等頁面如果在驗證時,鏈接中會有參數的話,可以試着修改參數,改成自己的地址然后篡改密碼
4、 Response狀態值修改測試
即修改響應請求的結果達到目的。出現一些特定的響應值:true、1、ok、success等,可以修改這些回顯
5、 Session覆蓋測試
參數不可控時,
6、 弱Token設計缺陷測試
弱Token:時間戳、uid加密后的md5值或加密base64、uid+4位隨機數等
找回密碼功能中,會有一個找回密碼的鏈接,其中可以觀察參數的規律,比如token,可以查看token的規律,猜測爆破出來,構造找回密碼的鏈接
7、 密碼找回流程繞過測試
密碼找回一般有三個步驟:輸入要找回的賬號,校驗憑證,成功進入修改密碼界面。
第二步很重要,我們可以嘗試分析所有請求的接口,找到每一個url的規律,找到最后一步的接口,使用rul測試看是否會跳過憑證校驗直接到密碼修改的頁面。
十、 業務接口調用模塊測試
1、 接口調用重放測試(類似短信轟炸)
在提交時抓包,然后重復對數據包進行重放
2、 接口調用遍歷測試
查找帶有用戶表示參數的url,然后看是否包含敏感信息,之后遍歷參數,看是否會返回他人信息
3、 接口調用參數篡改測試
先登錄自己的賬號,進行密碼找回或修改,在提交驗證的時候抓包,把目標賬號的驗證信息填成自己的,看是否會正常發送過來驗證信息
4、 接口未授權訪問\調用測試
爬取網站找出有敏感信息的請求,然后復制改url到其他瀏覽器訪問看是否能訪問到之前的敏感信息,能訪問到就是存在漏洞
5、 Callback自定義測試
6、WebService測試