當前位置:
首頁 > 新聞 > 邏輯漏洞挖掘初步總結篇

邏輯漏洞挖掘初步總結篇

菜雞第一次投稿,很緊張,看別人菜鳥至少還在天上飛,我只能在地上跑了。這篇文章是我對邏輯漏洞的總結,其包含了常見邏輯漏洞挖掘框架與流程,希望能給各位提供些思路,也希望各位大佬提出改進意見,過段時間我會將工作中(雖然現在馬上要畢業還在找工作)遇到的實例與該框架重新歸納總結成進階篇,該篇涉及burpsuite的部分功能,後面有時間我會寫一篇burpsuite常用功能介紹。


邏輯漏洞


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


我將所有邏輯漏洞的問題分為前端和後端兩個部分,總體思路都是先測試前端再測試後端。

在我理解中其實就是能突破規則限制的就是漏洞【像不可修改的通過抓包可以修改了】。


一、註冊處


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


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



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


1、前端


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


就像這樣:

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


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



2、簡訊轟炸


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


3、修改發送包手機號


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



流程小結



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

2、簡訊轟炸


3、修改發送包手機號


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


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


二、登錄處


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


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


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


1、前端

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


2、簡訊轟炸


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


3、驗證碼爆破


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


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


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


4、修改發送包手機號


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


5、修改用戶參數

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


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



流程小結



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


2、簡訊轟炸


3、驗證碼爆破


4、修改發送包手機號


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

三、密碼找回處


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


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


這裡也是先前端再後端。


1、前端


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


2、驗證碼爆破


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


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


3、修改發送包手機號

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


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



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


2、驗證碼爆破


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


4、

【郵箱找回】

鏈接嘗試修改用戶參數【注意token等參數】


四、支付與越權


這裡放上思維導圖。

這裡之所以沒有按先前端再後端的順序來寫,是因為幾乎每個網站的支付和越權邏輯都不太一樣,使用先前端再後端這樣的框架的話就限制了思路。


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


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


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


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


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


思維導圖總覽



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



網盤鏈接: https://pan.baidu.com/s/18j10XeUe5K8ZEQaGtJtjOg

提取碼: suyf 


*

本文作者:scpkun,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

成為物理黑客吧!利用樹莓派實現P4wnP1項目進行滲透測試
由一張小票引起的聯想

TAG:FreeBuf |