基于web頁面驗證碼機制漏洞的檢測
在區塊鏈這一塊上,每個用戶或多或少都在部分網站上注冊過一些帳號,當這些帳號涉及到金錢或者利益的時候,帳號的安全就是一個非常值得重視的問題,因此帳號的安全是各個廠商所非常關注的一個點。但是依然會存在一些廠商在身份驗證這一塊上存在著漏洞,并不是廠商不注重這個問題,只是在代碼層的驗證過程中的邏輯出現了一些差異,往往這些邏輯漏洞利用起來比較容易。
0x00不可靠的前端校驗
在現實環境中,會有許多的網站他們沒有嚴格進行身份校驗,他們往往是通過依靠帳號密碼發送后回傳的狀態碼來判斷用戶身份是否正確,這就暴露出了很大的漏洞,這種漏洞利用起來就相當的容易,往往只需要一個安全界的神器BURP就可以完成身份驗證的繞過,在登錄的時候輸入正確的賬戶以及隨意的密碼,將報文攔截下來,然后選擇burp里面的攔截返回包的功能,捕捉返回的狀態碼
去中心化衍生品交易協議Veax將于1月31日推出Advanced DEX公共測試網:1月28日消息,去中心化衍生品交易協議 Veax 將于 1 月 31 日推出基于 NEAR 的 Advanced DEX 公共測試網,支持流動性管理、流動性池、真實保證金和衍生品交易等功能。
數據顯示,Veax 是由 Tacans Labs 開發的單邊流動性管理 DEX,具有開創性的 TradFi 授權功能。Veax 于 2022 年 11 月完成 120 萬美元 pre-seed 輪融資,Circle Ventures 等參投。[2023/1/28 11:33:50]
將返回包中的狀態碼修改為正常登錄的狀態碼,當然這里的狀態碼不一定都是0和1這種,各種狀態碼都有可能存在,那么我們怎么樣判斷正確的狀態碼是什么呢?
這里我們就需要自己手動注冊一個用戶,然后進行正常登錄,并且抓取返回的狀態碼,當你發現發回的報文中,僅僅只存在狀態碼,并沒有其他set-cookie或者tocken等信息的時候,那么這個登錄界面就有極大的可能性存在這種漏洞。這是比較致命的一種漏洞,那么你可能就會有其他的問題了,即使他存在了這種漏洞,但是我們不太可能擁有其他大量的帳號,這個漏洞的危害不就沒什么用了碼?這就是我接下來要說的問題。
OKX Ventures與日本Web3游戲公司Thirdverse建立合作伙伴關系:據OKX Ventures官推消息,OKX Ventures與日本Web3游戲公司Thirdverse建立合作伙伴關系,OKX Ventures將提供營銷和業務發展支持,以促進Web3游戲開發與用戶使用。
OKX Ventures負責人Jeffrey Yunan Ren 表示,Thirdvese 位于Web3.0游戲、足球和日本流行漫畫交叉點,我們相信CAPTAIN TSUBASA -RIVALS-將成為Thirdverse的良好開端,并在未來推出更好的游戲。
據悉,CAPTAIN TSUBASA -RIVALS-是一款即將推出的區塊鏈游戲,源自最受歡迎和最持久的日本系列漫畫《Captain Tsubasa》,用戶可以訓練原作中的角色并與其他玩家對戰。[2022/12/5 21:23:57]
0x01遍歷手機號
Sphere 3D獲得Hertford Advisors加密挖礦資產的專有權:金色財經報道,納斯達克上市的數據管理公司Sphere 3D獲得了Hertford Advisors的比特幣挖礦資產的專有權。Sphere 3D公司表示,已經完成了第一份協議,并購買了60,000臺新的比特幣礦機。交付將于11月開始,共需要10個月。合同還包括購買額外的160,000臺礦機以及獲得20萬平方英尺的加密挖礦設施的長期合同。該公司沒有透露交易價值,但表示一旦這兩個目標實現,將向Hertford發行450萬股股票。[2021/8/7 1:40:08]
現在大多數的網站都存在著手機號注冊的這一個功能,一般來說同一個手機號只能注冊一個帳號,所以手機號也是能作為帳號,這就是能利用的一個點,當手機號能成為帳號的時候,那么之前所存在的疑問就解決了一半,既然知道手機是可以用來登錄的帳號,那么如何來獲得這些手機號呢?這個問題其實是一個非常好的問題,對于手機號來說,一共有11位數,要想胡亂的猜測一個手機號是否在這個平臺上注冊過,一次性猜中的概率是微乎其微,但是有的網站的忘記密碼這一功能就存在利用的方法,但是我認為他的危害性還是有的。在我們忘記密碼的時候輸入手機號碼,發送手機驗證碼的時候,部分網站都會先查詢這個手機號是否在這個網站上注冊過,要是沒有則會提示號碼不存在,存在則發送短信。那么可以使用這一個邏輯來進行用戶手機號遍歷。順帶提一下手機號碼可以使用手機號碼字典生成器來生成,然后用來遍歷。
Stellar正與私募股權公司Advent就可能達成的交易進行合作:7月22日消息,Stellar Development Foundation已就可能收購這家擁有 81 年歷史的匯款巨頭的事宜與速匯金國際聯系。據文章中引用的未具名消息人士稱,Stellar 正與私募股權公司 Advent 就可能達成的交易進行合作。Stellar 和 Advent 可以決定不推進收購。今年 5 月,總部位于舊金山的 Stellar 是一家支持基于區塊鏈的平臺,使消費者和機構能夠轉移資金的非營利組織,向位于墨西哥的數字錢包和點對點交易平臺 AirTM投資了1500 萬美元。(彭博社)[2021/7/22 1:08:19]
如圖所示,用戶不存在則是另外的信息。我們只需根據length長度來辨別,也可以自己寫py腳本來遍歷保存注冊用戶。這一個點可以獲取到大量的用戶手機號。
0x02可爆破的手機驗證碼
消息人士:MoneyGram與私募股權公司Advent進行收購談判:據Street Insider報道,前Ripple合作伙伴MoneyGram(速匯金)可能會被私募股權公司Advent收購。消息人士透露,雙方正在就潛在的收購進行談判。
據悉, MoneyGram曾經是Ripple的主要合作伙伴。不過,3月初Ripple發布公告稱,Ripple和速匯金共同決定終止當前的合作伙伴關系協議。之后Ripple Labs表示將出售其持有的所有速匯金(MoneyGram)股票,多達820萬股,銷售將持續至9月30日。(U.Today)[2021/7/16 0:58:24]
前面介紹了前端校驗繞過的方法以及用戶手機號獲取的方式,接下來來講解一下手機驗證碼的問題。我放一張思維導圖來供大家參考
手機驗證碼存在的位置可能有三個點:登錄、注冊、密碼找回這三個點。其中注冊這個點的危害相對較小,除非找到一個可以批量注冊帳號的點。
那么危害較大的就剩下登錄和密碼找回了,實際這兩個點的原理是一樣的,只不過利用的環境有所不同。
目前登錄時候使用手機驗證碼登錄的網站數量不是占很大的百分比,本文就以找回密碼這塊來說明。
我們在測試之前首先要進行判斷的時候他的手機短信驗證碼的長度、時效以及頁面是否存在有比較難的圖片驗證碼,也就是難以用python的庫直接識別的圖片驗證碼。這是我們首先要注意的,其次提交一次表單,抓包來看看,是否存在有前端加密,或者sign等。我以手機驗證碼長度為4位和6位來分類。
第一類: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:ENTVENVENTRESRentibleVendetta FinanceEventChainCoreStarter
早在去年5月,Facebook就表示了有發行加密貨幣的相關計劃,今年4月,扎克伯格還公布了發幣時間計劃在2020年的第一季度.
1900/1/1 0:00:006月22日,來自全球審計“四巨頭”之一安永的全球創新&區塊鏈科技負責人PaulBrody出席新加坡WBF區塊鏈大會,并發表了《深度可擴展性:2019區塊鏈新機遇》.
1900/1/1 0:00:00近期BTC的走勢可以說非常強勢,幣價在突破1萬美元心理關口后直線飆升至最高11200美元然后掉頭回落至目前10600美元附近,日線再次收出大陽柱,我們可以看看近期BTC4小時走勢.
1900/1/1 0:00:00Facebook在6月18日推出加密貨幣項目Libra時,還公布了首批合作的27家公司,其中包括一家名為PayU的支付公司.
1900/1/1 0:00:00每經記者潘婷每經編輯陳旭6月22日,比特幣價格時隔15個月再次“破萬”,達到10746美元。Eth、Eos價格也呈上升走勢,分別達到304美元、7.3美元。幣圈對此振奮不已.
1900/1/1 0:00:00在改革事物的問題上存在著一個悖論,在這種情況下,存在著一個特定的制度或法律;在面對一個籬笆或大門橫跨一條道路時,更現代的改革者會興高采烈地說:“我看不到它的用處,讓我們把它清除掉.
1900/1/1 0:00:00