1. 程式人生 > >可用fidder測試的一些安全測試點

可用fidder測試的一些安全測試點

以下是整理的一些常見的安全滲透測試點

1.用工具fidder抓包攔截篡改伺服器端返回的程式碼,導致下級擁有對上級的訪問操作許可權

以下是公司開發寫的使用者角色許可權頁面跳轉

修改普通角色跳轉的頁面為管理員跳轉的頁面

2.篡改傳輸的資料,積分兌換下訂單,可以花別人的積分兌換東西送貨到我想送的人和地址

3.任意修改使用者資料

某交易平臺的使用者可以通過該系統的個人資料修改頁面修改個人的暱稱和頭像。

擷取傳送修改請求的資料包抓取進行分析。我們發現在提交的過程中,其實請求自帶了一個隱藏的引數investor.loginName,其實 investor.loginName為登入的手機號碼(或使用者名稱),investor.Name為重置的使用者名稱,通過直接修改掉引數 investor.loginName為任意註冊的使用者名稱或者手機號碼,即可成功篡改重置該使用者的使用者名稱。

4.任意查詢使用者資訊

在對金融交易平臺測試的過程中,我們發現大部分平臺並未對查詢功能進行優化,使用使用者的uid之類的賬號標誌引數作為查詢的關鍵字,並且未對查詢範 圍進行控制,導致出現任意資訊查詢的安全漏洞。該型別漏洞在手機客戶端較為常見,如在某交易平臺手機商城就發現了任意查詢其他使用者資訊的安全問題。

當點選商城的個人資料修改處,系統會通過將當前使用者的phone_client_uuid提交到伺服器進行查詢,調出個人資料的內容

 

但由於系統並未對該功能進行訪問控制,導致可通過遍歷uuid的方式查詢平臺中任意使用者的資料,通過工具對phone_client_uuid的後5位進行爆破嘗試,如下圖:

 

通過對返回值的length進行篩選,發現成功爆破部分phone_client_uuid所對應的使用者資訊。

程式碼防護

針對平行許可權的訪問控制缺失,我們建議使用基於使用者或者會話的間接物件引用進行防護,比方說,一個某個選項包含6個授權給當前使用者的資源,它可以使 用一串特殊的數字或者字串來指示哪個是使用者選擇的值,而不是使用資源的資料庫關鍵字來表示,數字和字串的生成可以結合賬號資訊進行生成,使得攻擊者難 以猜測生成的方式。

針對垂直許可權的訪問控制缺失,我們建議可以使用預設拒絕所有的訪問機制,然後對於每個功能的訪問,可以明確授予特定角色的訪問許可權,同時使用者在使用該功能時,系統應該對該使用者的許可權與訪問控制機制進行校對。

5.任意重置使用者密碼

漏洞描述

使用者越權去修改其他使用者的資訊,如密保電話、密保郵箱等,由於它敏感性所以我們將它歸納成一類進行探討。

案例

繞過簡訊驗證碼

基本所有的金融交易平臺都有簡訊找回密碼的功能,但部分簡訊驗證的功能較為不完善導致可被利用重置任意使用者的賬號,同樣是某金融平臺的實際案例:

在已知對方使用者名稱和手機號碼的情況下,通過站點的密碼找回功能可繞過簡訊驗證碼直接重置該賬號密碼。下圖為密碼重置頁面:

 

該漏洞出現主要的原因在於開發人員在第二步設定新密碼時服務端沒有對手機驗證碼進行二次校驗,提示:重要的功能都需要做伺服器端驗證,導致當攻擊者可以利用修改返回值的方式直接跳轉到設定新密碼頁面,然後重置使用者的密碼。

6.簡訊驗證碼暴力破解

部分金融交易平臺為了使用者登入方便會設定簡訊驗證碼登入功能,但並未對驗證碼的登入錯誤次數進行限制,導致可利用驗證碼爆破的方式強行登入賬號。在某證券交易平臺就曾出現過該安全問題。

該平臺使用6位數字隨機驗證碼進行登入,但並未對登入錯誤次數和驗證碼失效時間進行限制,導致可以暴力破解該驗證碼強制登入賬號。如下圖:

 

同樣是通過返回值的length欄位進行判斷是否登入成功。6位欄位的爆破需要較長的時間,但4位驗證碼的爆破時間最慢也僅需要約5分鐘左右。

程式碼防護

針對案例一中的漏洞,我們建議在第二步修改密碼時服務端再次驗證手機驗證碼,部分平臺所採用的做法是,第一步驗證碼提交成功後,將驗證碼隱藏在一個 “hidden”表單中,並在第二步修改密碼中進行提交,服務端再次驗證簡訊驗證碼,保證準確性,同時對驗證碼的錯誤次數進行限制,當驗證錯誤超過特定次 數,當前驗證碼無效。

針對案例二中的漏洞,我們同樣建議隨機驗證碼設定錯誤次數限制,當驗證錯誤超過特定次數,當前驗證碼即無效。

7.惡意註冊

漏洞描述

惡意註冊,是指攻擊者利用網站註冊功能的安全漏洞,註冊大量的垃圾賬號,導致系統增多大量無用資料。一般網站開發者為了防止惡意註冊的行為,在註冊 頁面均會在加入一些需要人工輸入的步驟,比方說簡訊驗證碼,郵箱驗證等。但是在對金融平臺測試的過程中,同樣也發現了部分驗證功能可被繞過。

案例

註冊資料包重放繞過驗證碼

部分金融交易平臺為了保證註冊使用者的真實性,往往都會要求驗證手機,並通過傳送驗證碼的方式來保證註冊賬號並非殭屍賬號,但是部分平臺的驗證碼可被多次重放,導致可註冊大量垃圾賬號,在某交易商城的註冊功能就存在該漏洞,下圖為註冊時需要給手機發送驗證碼的資料包:

短息碼驗證完後,直接註冊寫資料庫,通過修改phoneNum的值可以實現批量註冊賬號:

通過修改phoneNum的值為15527xxxx96、15527xxxx97可成功註冊這兩個賬號:

該漏洞出現的原因在於後臺未校驗驗證碼的使用次數和時間,只校驗了其準確性,因此可被利用進行多次註冊。

程式碼防護

目前遇到的大部分惡意註冊類的安全漏洞均為驗證碼可被多次使用造成,我們建議後臺對驗證碼的使用進行限制,任何的驗證碼應為一次性,防止驗證碼被多次使用

 

8.惡意簡訊

漏洞描述

惡意簡訊是一種類似於DDoS的攻擊方式,他是利用網站的簡訊相關的功能,對使用者的手機進行長時間的簡訊轟炸,導致手機癱瘓。除了單純的簡訊轟炸之外,我們在測試過程中也發現,部分金融交易平臺對所傳送的簡訊內容也並沒有進行限制,導致可被利用進行簡訊欺詐。

案例

簡訊轟炸

在測試的過程中,我們發現眾多的金融交易平臺僅在前端通過JS校驗時間來控制簡訊傳送按鈕,但後臺並未對傳送做任何限制,導致可通過重放包的方式大 量傳送惡意簡訊。如某交易平臺的手機註冊處就出現過該型別漏洞。利用fiddler抓取資料包,並進行重放可以繞過前端的限制,大量傳送惡意簡訊。

 

任意簡訊內容編輯

在某平臺的修改繫結手機功能就曾出現過可編輯簡訊內容的問題。

點選“獲取簡訊驗證碼”,並抓取資料包內容,如下圖。通過分析資料包,可以發現引數sendData/insrotxt的內容有客戶端控制,可以修改為攻擊者想要傳送的內容

 

將內容修改“恭喜你獲得由xx銀行所提供的iphone6一部,請登入http://www.xxx.com領取,驗證碼為236694”併發送該資料包,手機可收到修改後的簡訊內容,如下圖:

技術分享

 

該型別漏洞對系統的影響不大,但若被攻擊者利用進行簡訊欺詐,將嚴重影響平臺的聲譽,甚至可能會惹上法律糾紛。

程式碼防護

針對惡意簡訊類的安全問題,我們建議可以通過以下兩種方式進行防護:

1、從服務端限制每個號碼的傳送頻率和每天的傳送次數,防止攻擊者利用簡訊介面進行惡意轟炸。‍‍

‍‍2、傳送簡訊的內容應直接由系統內部進行定義,客戶端可通過數字或字元的方式,對所需要傳送的內容進行選擇,如messagetype=1 為密碼找回,messtype=2為註冊,然後通過數字來索引要傳送的內容。

 

9.增加抽獎機會

本來沒有抽獎的次數,技術分享點選立即抽獎,fidder抓包,篡改狀態技術分享將0改為1,去掉提示

技術分享技術分享