基于web頁面驗證碼機制漏洞的檢測
在區塊鏈這一塊上,每個用戶或多或少都在部分網站上注冊過一些帳號,當這些帳號涉及到金錢或者利益的時候,帳號的安全就是一個非常值得重視的問題,因此帳號的安全是各個廠商所非常關注的一個點。但是依然會存在一些廠商在身份驗證這一塊上存在著漏洞,并不是廠商不注重這個問題,只是在代碼層的驗證過程中的邏輯出現了一些差異,往往這些邏輯漏洞利用起來比較容易。
0x00不可靠的前端校驗
在現實環境中,會有許多的網站他們沒有嚴格進行身份校驗,他們往往是通過依靠帳號密碼發送后回傳的狀態碼來判斷用戶身份是否正確,這就暴露出了很大的漏洞,這種漏洞利用起來就相當的容易,往往只需要一個安全界的神器BURP就可以完成身份驗證的繞過,在登錄的時候輸入正確的賬戶以及隨意的密碼,將報文攔截下來,然后選擇burp里面的攔截返回包的功能,捕捉返回的狀態碼
Darwinia Crab 網絡完成支持 DVM 和以太坊智能合約的功能升級:4月25日消息,波卡生態項目 Darwinia Crab 網絡完成支持 DVM 和以太坊智能合約的功能升級,提供 Dapp 遷移和進入波卡生態的入口。
注:Crab 是達爾文先行網,主要為 Darwinia 的升級和應用程序部署提供仿真和測試環境,并執行各種基本實驗。[2021/4/25 20:56:58]
將返回包中的狀態碼修改為正常登錄的狀態碼,當然這里的狀態碼不一定都是0和1這種,各種狀態碼都有可能存在,那么我們怎么樣判斷正確的狀態碼是什么呢?
這里我們就需要自己手動注冊一個用戶,然后進行正常登錄,并且抓取返回的狀態碼,當你發現發回的報文中,僅僅只存在狀態碼,并沒有其他set-cookie或者tocken等信息的時候,那么這個登錄界面就有極大的可能性存在這種漏洞。這是比較致命的一種漏洞,那么你可能就會有其他的問題了,即使他存在了這種漏洞,但是我們不太可能擁有其他大量的帳號,這個漏洞的危害不就沒什么用了碼?這就是我接下來要說的問題。
Advanced Blockchain子公司將在投資組合中實施收益耕作策略:德國區塊鏈即服務(BaaS)提供商Advanced Blockchain AG正準備通過其加密子公司nakamoto.to向客戶提供收益耕作(Yield Farming)。據稱,Advanced Blockchain是第一家在德國證交所運營的Xetra交易所上市的區塊鏈公司。nakamoto.to決定在其投資組合中實施收益耕作策略,表明市場對DeFi代幣的需求不斷增長。(CoinGape)[2020/11/20 21:31:50]
0x01遍歷手機號
現在大多數的網站都存在著手機號注冊的這一個功能,一般來說同一個手機號只能注冊一個帳號,所以手機號也是能作為帳號,這就是能利用的一個點,當手機號能成為帳號的時候,那么之前所存在的疑問就解決了一半,既然知道手機是可以用來登錄的帳號,那么如何來獲得這些手機號呢?這個問題其實是一個非常好的問題,對于手機號來說,一共有11位數,要想胡亂的猜測一個手機號是否在這個平臺上注冊過,一次性猜中的概率是微乎其微,但是有的網站的忘記密碼這一功能就存在利用的方法,但是我認為他的危害性還是有的。在我們忘記密碼的時候輸入手機號碼,發送手機驗證碼的時候,部分網站都會先查詢這個手機號是否在這個網站上注冊過,要是沒有則會提示號碼不存在,存在則發送短信。那么可以使用這一個邏輯來進行用戶手機號遍歷。順帶提一下手機號碼可以使用手機號碼字典生成器來生成,然后用來遍歷。
Bitcoin Advisory創始人:成為“satoshi億萬富翁”要比成為“法幣億萬富翁”容易得多:比特幣咨詢公司Bitcoin Advisory創始人Pierre Rochard發推稱,據估計,世界上大約有2000名“法幣億萬富翁”,有15萬名“satoshi億萬富翁”(指持有10個比特幣以上的人)。雖然這兩個數字單位不同,但有一件事是清楚的:現在成為比特幣“satoshi億萬富翁”要比成為“法幣億萬富翁”容易得多。[2020/4/30]
如圖所示,用戶不存在則是另外的信息。我們只需根據length長度來辨別,也可以自己寫py腳本來遍歷保存注冊用戶。這一個點可以獲取到大量的用戶手機號。
0x02可爆破的手機驗證碼
前面介紹了前端校驗繞過的方法以及用戶手機號獲取的方式,接下來來講解一下手機驗證碼的問題。我放一張思維導圖來供大家參考
動態 | Advanced Markets Group推出8種加密貨幣差價合約:據Finance Magnates消息,Advanced Markets Group宣布推出8種加密貨幣差價合約(CFD),以擴大其流動性供應。這8種加密貨幣分別是:BTC、BCH、ETH、XRP、EOS、NEO、XLM和LTC。[2019/6/27]
手機驗證碼存在的位置可能有三個點:登錄、注冊、密碼找回這三個點。其中注冊這個點的危害相對較小,除非找到一個可以批量注冊帳號的點。
那么危害較大的就剩下登錄和密碼找回了,實際這兩個點的原理是一樣的,只不過利用的環境有所不同。
目前登錄時候使用手機驗證碼登錄的網站數量不是占很大的百分比,本文就以找回密碼這塊來說明。
我們在測試之前首先要進行判斷的時候他的手機短信驗證碼的長度、時效以及頁面是否存在有比較難的圖片驗證碼,也就是難以用python的庫直接識別的圖片驗證碼。這是我們首先要注意的,其次提交一次表單,抓包來看看,是否存在有前端加密,或者sign等。我以手機驗證碼長度為4位和6位來分類。
Btcdo上線DATAVLT(DVT):Btcdo公告稱,香港時間2018年4月2日下午3點開放DATAVLT(DVT)充值,并且將于香港時間2018年4月3日下午3點開放DATAVLT(DVT)交易,并開通DVT/ETH交易市場。[2018/4/3]
第一類:4位手機驗證碼
當我們發現手機驗證碼長度為4位的時候,時效為5分鐘左右,并且沒有什么復雜前端加密或者sign和復雜的圖片驗證碼的時候,那么恭喜你,你可能找到了一個可以爆破出驗證碼的點,這種漏洞雖然是爆破,但是他利用所花費的時間確實非常低的,通常可以在很短的時間內重置或者登錄一個手機號。這對廠商來說就是一個高危漏洞,相信他會給你不錯的報酬。
上面的這種屬于較為簡單的漏洞,筆者在前段時間測試的時候發現了帶有sign標記的4位驗證碼,這種的爆破的難度就有所提升了,他的sign是根據當前的時間戳以及手機號驗證碼等信息進行加密后生成的,要想去破解這個加密算法,是不太現實的。于是筆者就使用了一種騷思路,可能各位安全界的大佬們也用過,那就是python的selenium庫來模擬瀏覽器自動化點擊測試,但是這個就需要自己去根據網站的實際情況以及窗口位置來編寫腳本。關于selenium的提供一個學習鏈接。
第二類:6位手機驗證碼
通常來說6位的驗證碼,30分鐘的時效是一個挺安全的設計,因為在30分鐘內想跑完100W條數據的難度還是挺大,并且網站通常會根據發包速率來進行限制,一旦你的發包速率突破設定,你將會被403,也就是你的IP會被封禁一段時間,有這些設置的驗證碼是安全的,但是如果說時效在1小時甚至更長,并且不限制IP的發包速率了話,那么利用也是可以利用的,只不過利用的成本過高,所以基本不考慮。因此在導圖中寫到基本不不去考慮。
0x03現實環境下的漏洞案例思路以及分析
接下來給大家帶來一個真實的漏洞案例,也是我本人所挖掘到的一個高危漏洞,該漏洞是一個區塊鏈社區所存在的任意登錄漏洞
在登陸界面,由于圖片驗證碼長期有效,所以猜測可以爆破。
通過兩次提交發現圖片驗證碼在一定時間內是不會發生變化的,盡管已經經過了一次校驗。因為查看js發現驗證碼是由手機驗證碼經過sha256后從第六位開始取4位收到的驗證碼,測試時候輸入的驗證碼為1602
證明了這個加密算法,于是利用腳本生成了0000-9999的加密后的字典用來爆破。在爆破過程中發現,驗證碼的時效1分鐘左右,并不足以完成爆破。于是就換了另外一種思路,既然通過爆破是沒有辦法完成驗證碼的限制,則想到了程序員在編寫代碼的時候他會不會犯一種錯誤,猜想他是否會將過期后的驗證碼重置為一串特定的字符。既然有了這種猜想,那么就肯定需要來進行一波驗證,首先根據他的加密算法發現他的是sha256,也就是每一位驗證碼數據只會在0-f之間生成,于是生成了一個0000-ffff的字典,來進行了一波爆破,就如猜想的一樣,爆破出一個意外的數值,當然并不是在第一次爆破過程中發現的,第一次可能是一個意外,于是我便借用了別人的手機進行了幾次嘗試后,發現這個數值是固定的,那么這個漏洞就證明成立的了。
這樣就挖掘出了一個任意登錄帳號的漏洞,剛好這個網站又存在如之前所說的手機號遍歷的問題,于是結合這兩個點所產生的結果就是可以登錄任意用戶。
分析:綜合了這些問題,我綜合了幾點對廠商的建議:
1.在對用戶進行身份驗證的時候不要把信息校驗放在前端
2.手機驗證碼長度在6位以上
3.在進行發送短信校驗碼的時候不要在返回包中返回驗證碼的具體信息
4.在沒有獲取驗證碼的時候不要設置默認驗證碼數值
5.在用戶注冊頁面的驗證碼要對手機進行綁定,不要出現一個驗證碼可供多個手機使用的情況
注:本篇文章嚴禁用以非法用途
Tags:ANCNCECHADVTBerserk FinancePinecone Financechatcoin幣最新消息ADVT幣
前兩天,有藍狐筆記的讀者問:幣安為什么要推出BEP2社區上幣和錨定比特幣的BTCB?簡單來說,是增加其DEX流動性和整體價值,但我們還可以從更深入的角度來看這個問題.
1900/1/1 0:00:00據華夏時報消息,近日,火幣大學校長于佳寧接受采訪時表示,比特幣1萬美元價格對于加密數字貨幣市場而言,是一個重大的心理關口.
1900/1/1 0:00:00根據彭博社日本周二發布的報道稱,主要投資銀行摩根大通數字資產服務和區塊鏈主管UmarFarooq表示,客戶將開始試用JPMCoin,其最終目的是要加快公司之間的支付和債券交易等活動的處理速度.
1900/1/1 0:00:00親愛的用戶: Syscoin網絡現已升級為4.0版本,并開放充值、提現。 注意: SYS的充值地址現已更新為新的格式,請重新獲取新的充值地址;原充值地址已失效,SYS網絡將不再支持該類地址的轉賬.
1900/1/1 0:00:00Facebook發幣,幣圈地震,互聯網圈更地震。從前看不起區塊鏈的互聯網從業者都開始反思區塊鏈對全球支付的作用。隨著造幣成本的上漲、現金使用頻次的降低,無現金社會趨勢勢不可擋.
1900/1/1 0:00:00幣安創始人趙長鵬昨日在推特宣布,自上月推出保證金交易功能以來,該平臺進行了首次保證金清算。這對空軍來講可不是個好消息,畢竟近日比特幣一波猛發力迅速漲至11000美元,這回被清算的是空頭頭寸.
1900/1/1 0:00:00