邏輯漏洞挖掘初步總結篇

邏輯漏洞

在我理解中,邏輯漏洞是指由於程序邏輯輸入管控不嚴,導致程序不能夠正常處理或處理錯誤,一般出現在登錄註冊、密碼找回、信息查看、交易支付金額等。

我將所有邏輯漏洞的問題分爲前端和後端兩個部分,總體思路都是先測試前端再測試後端。在我理解中其實就是能突破規則限制的就是漏洞【像不可修改的通過抓包可以修改了】。

一、註冊處

註冊功能可能出現任意用戶註冊、短信轟炸等問題。

配合思維導圖(此處以常見的手機註冊舉例,同理其他註冊也可以套用該模型)。

框裏面是對每一個步驟的解釋,框右邊是總結的流程。(先不管圖片驗證碼的原因是因爲就算圖片驗證碼可繞過,廠商也會因爲該漏洞危害小而忽略)

1、前端

首先是前端,打開burpsuite,將整個註冊流程走一遍,將每個步驟的包都右鍵標上不同顏色。

就像這樣:

查看每個返回包有沒有返回手機驗證碼或者存在true、false之類的判斷語句,嘗試將false修改爲true,成功註冊的話就繞過了前端驗證。

這樣可以攔截該請求返回包:

2、短信轟炸

嘗試重放發送驗證碼的包,查看手機是否在短時間內收到了多條短信,是的話則存在短信轟炸漏洞,這是因爲後端沒有對發送手機短信做時間限制。

3、修改發送包手機號

最後是修改發送包的手機號,首先用自己的手機收到正確驗證碼,在點擊註冊時攔截包將手機號改爲其他手機號,如果成功的話就註冊了別人的手機號,這是因爲後端僅驗證了驗證碼是否是正確的而沒有驗證驗證碼是否與手機匹配。

流程小結

1、前端判斷【回顯及判斷】

2、短信轟炸

3、修改發送包手機號

【郵箱註冊】4、修改發送包郵箱嘗試覆蓋註冊

以上是手機註冊的大概框架流程,同理其他註冊類型也可以對比測試。

二、登錄處

登錄處可能出現任意用戶登錄、驗證碼可繞過、用戶賬號可撞庫等問題。

配合思維導圖,此處思維導圖上說的密碼也是手機驗證碼,因爲是以手機驗證碼登錄舉例(此處以常見的手機驗證碼登錄舉例,同樣賬號密碼登錄也可以套用該模型,手機驗證碼登錄的特殊處已用框標記)

同樣的,也是先測試前端再測試後端。

1、前端

首先對比正確登錄和錯誤登錄的包,對比返回包看是否有判斷,嘗試修改參數繞過前端驗證。(這裏也是打開burpsuite整個流程走一遍,和上面的註冊處測試差不多)

2、短信轟炸

測試短信轟炸與註冊處測試步驟一樣(一般來說註冊處有短信轟炸的話這裏也會有)。

3、驗證碼爆破

再然後就是驗證碼爆破(或繞過),此處驗證碼包括圖片驗證碼和手機驗證碼,先測試圖片驗證碼,將使用正確密碼登錄的包再重放一次,如果回顯還是正確登錄的話說明並沒有對圖片驗證碼進行限制,可以嘗試撞庫。

至於手機驗證碼,通常是嘗試爆破,如果網站發到手機上的短信沒有寫什麼在xx時間內有效之類的則有可能沒有時間限制,將登錄包右鍵發送至Intruder(即測試器模塊)設置好爆破位置後在載荷裏選擇數值後這樣填寫。

通常範圍是填寫正確驗證碼所在的範圍,爆破出來可以登錄用戶,漏洞標題也就可以寫任意用戶登錄漏洞。

4、修改發送包手機號

修改發送包手機號則和上面註冊處修改發送包手機號步驟一樣,不同的是上面註冊處是爲了測試任意用戶註冊,而這裏登錄處是爲了測試任意用戶登錄,原理一樣目的不同。

5、修改用戶參數

查看正確登錄包的返回包是否有用戶id之類的參數,嘗試修改該參數。(不嫌麻煩的話可以用兩個正確登錄的返回包對比)

攔截該請求的返回包修改返回包中的用戶參數。

`EE{LWFHDG0J([HDD29S)13.png

流程小結

1、前端判斷【回顯及判斷】

2、短信轟炸

3、驗證碼爆破

4、修改發送包手機號

5、嘗試修改用戶參數【注意token等參數】

三、密碼找回處

密碼找回處可能出現任意用戶密碼找回、驗證碼可繞過等問題。

密碼找回處的思維導圖,此處以手機驗證碼找回爲例。

這裏也是先前端再後端。

1、前端

前端測試與前面一致,無非就是修改返回包看是否能跳過驗證步驟,此處也就略過。

2、驗證碼爆破

第2步之所以沒有寫短信轟炸是因爲前面註冊和登錄已經測試過了。

驗證碼爆破與上面登錄處的驗證碼爆破操作一致。

3、修改發送包手機號

這裏與上面註冊處的修改發送包手機號操作一致,也就不多說了。

流程小結(其實精華都在思維導圖上,其他的都是做解釋,在最後我會把思維導圖整體放上來)

1、前端判斷【回顯及判斷】

2、驗證碼爆破

3、修改發送包手機號或郵箱【提交時修改手機號或者修改驗證碼發送包的手機號】

4、【郵箱找回】鏈接嘗試修改用戶參數【注意token等參數】

四、支付與越權

這裏放上思維導圖。

2$1(WJDQ4JDVMZDNN}TB%JD.png這裏之所以沒有按先前端再後端的順序來寫,是因爲幾乎每個網站的支付和越權邏輯都不太一樣,使用先前端再後端這樣的框架的話就限制了思路。

在支付和越權這裏我認爲,只要有參數,都可以修改,都有可能出現問題。

通常我會使用兩個賬號來對比測試,這樣可以更快發現可疑參數。

解釋(有任何問題都可以留言,我會盡量解答,問題很多的話我會在過段時間的進階篇裏統一歸納整理):

支付接口指的是網站支付一般會有像微信支付、支付寶支付這種,一般網站會在支付的發送包裏用某個參數標識。

登錄時查看並測試用戶信息返回接口指的是,在登錄的時候,有的網站有個返回包是一個json數據包,該包內包含了用戶敏感信息,此時就可以嘗試修改發送包的用戶參數,說不定就能獲取其他用戶的敏感信息。 

思維導圖總覽

T]45BN](ZCYKYM7(5IA1P8X.png

其實我感覺總覽這個圖字太小了,要看全部的話可以下載我分享的這個網盤原文件。

網盤鏈接: 提取碼: suyf 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章