基于web頁面驗證碼機制漏洞的檢測
在區塊鏈這一塊上,每個用戶或多或少都在部分網站上注冊過一些帳號,當這些帳號涉及到金錢或者利益的時候,帳號的安全就是一個非常值得重視的問題,因此帳號的安全是各個廠商所非常關注的一個點。但是依然會存在一些廠商在身份驗證這一塊上存在著漏洞,并不是廠商不注重這個問題,只是在代碼層的驗證過程中的邏輯出現了一些差異,往往這些邏輯漏洞利用起來比較容易。
0x00不可靠的前端校驗
在現實環境中,會有許多的網站他們沒有嚴格進行身份校驗,他們往往是通過依靠帳號密碼發送后回傳的狀態碼來判斷用戶身份是否正確,這就暴露出了很大的漏洞,這種漏洞利用起來就相當的容易,往往只需要一個安全界的神器BURP就可以完成身份驗證的繞過,在登錄的時候輸入正確的賬戶以及隨意的密碼,將報文攔截下來,然后選擇burp里面的攔截返回包的功能,捕捉返回的狀態碼
虛擬土地開發商LandVault與美國經紀公司CAA簽約:1月19日消息,虛擬土地開發商LandVault已與美國經紀公司Creative Artists Agency(CAA)簽約。CAA將向LandVault提供“人才和品牌主導的元宇宙機會”方面的建議,以幫助其建立人才和品牌合作伙伴關系,并探索新創造的知識產權機會。(The Block )[2023/1/19 11:20:32]
將返回包中的狀態碼修改為正常登錄的狀態碼,當然這里的狀態碼不一定都是0和1這種,各種狀態碼都有可能存在,那么我們怎么樣判斷正確的狀態碼是什么呢?
這里我們就需要自己手動注冊一個用戶,然后進行正常登錄,并且抓取返回的狀態碼,當你發現發回的報文中,僅僅只存在狀態碼,并沒有其他set-cookie或者tocken等信息的時候,那么這個登錄界面就有極大的可能性存在這種漏洞。這是比較致命的一種漏洞,那么你可能就會有其他的問題了,即使他存在了這種漏洞,但是我們不太可能擁有其他大量的帳號,這個漏洞的危害不就沒什么用了碼?這就是我接下來要說的問題。
Solana手機Saga啟動開發者測試版DVT-1預售:8月18日消息,Solana手機Saga啟動開發測試版DVT-1預售活動,將在第三季度為希望了解Saga和SMS的開發人員提供3,500臺DVT-1測試版手機,接受USDC或信用卡付款。
據悉,為了有資格獲得Saga DVT-1,參加預售的開發者需要在預購表中填寫GitHub帳戶。[2022/8/18 12:33:23]
0x01遍歷手機號
現在大多數的網站都存在著手機號注冊的這一個功能,一般來說同一個手機號只能注冊一個帳號,所以手機號也是能作為帳號,這就是能利用的一個點,當手機號能成為帳號的時候,那么之前所存在的疑問就解決了一半,既然知道手機是可以用來登錄的帳號,那么如何來獲得這些手機號呢?這個問題其實是一個非常好的問題,對于手機號來說,一共有11位數,要想胡亂的猜測一個手機號是否在這個平臺上注冊過,一次性猜中的概率是微乎其微,但是有的網站的忘記密碼這一功能就存在利用的方法,但是我認為他的危害性還是有的。在我們忘記密碼的時候輸入手機號碼,發送手機驗證碼的時候,部分網站都會先查詢這個手機號是否在這個網站上注冊過,要是沒有則會提示號碼不存在,存在則發送短信。那么可以使用這一個邏輯來進行用戶手機號遍歷。順帶提一下手機號碼可以使用手機號碼字典生成器來生成,然后用來遍歷。
Advanced Blockchain AG通過其子公司投資Neon Labs:11月11日消息,德國區塊鏈即服務(BaaS)提供商Advanced Blockchain AG宣布,已經通過其子公司投資Neon Labs。Neon Labs創建的Neon EVM是Solana區塊鏈上的以太坊虛擬機(EVM),使DApp開發人員能夠使用以太坊工具在Solana進行擴展和獲取流動性。(DGAP)[2021/11/11 21:43:43]
如圖所示,用戶不存在則是另外的信息。我們只需根據length長度來辨別,也可以自己寫py腳本來遍歷保存注冊用戶。這一個點可以獲取到大量的用戶手機號。
0x02可爆破的手機驗證碼
前面介紹了前端校驗繞過的方法以及用戶手機號獲取的方式,接下來來講解一下手機驗證碼的問題。我放一張思維導圖來供大家參考
手機驗證碼存在的位置可能有三個點:登錄、注冊、密碼找回這三個點。其中注冊這個點的危害相對較小,除非找到一個可以批量注冊帳號的點。
Bitcoin Advisory創始人:積累和持有比特幣可致富:比特幣咨詢公司Bitcoin Advisory創始人Pierre Rochard剛剛發推稱:“如何在20年里致富:1. 積累10年比特幣;2. 持有比特幣10年。”[2020/7/5]
那么危害較大的就剩下登錄和密碼找回了,實際這兩個點的原理是一樣的,只不過利用的環境有所不同。
目前登錄時候使用手機驗證碼登錄的網站數量不是占很大的百分比,本文就以找回密碼這塊來說明。
我們在測試之前首先要進行判斷的時候他的手機短信驗證碼的長度、時效以及頁面是否存在有比較難的圖片驗證碼,也就是難以用python的庫直接識別的圖片驗證碼。這是我們首先要注意的,其次提交一次表單,抓包來看看,是否存在有前端加密,或者sign等。我以手機驗證碼長度為4位和6位來分類。
第一類:4位手機驗證碼
動態 | DVP漏洞通報:互融云交易所系統存在高危漏洞 100多家交易所存在數據泄露風險:近日,DVP收到安全人員提交的報告,互融云數字貨幣交易所系統存在高危漏洞,攻擊者可獲取到交易所后臺管理員權限,將會導致交易所的內部數據(用戶信息、訂單信息等)大量泄漏,且用戶、平臺的資金也存在被竊風險。經調研,目前使用了這套系統的交易所超過百家。[2019/6/21]
當我們發現手機驗證碼長度為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:0X0區塊鏈比特幣AGA0x0.ai: AI Smart Contract區塊鏈dapp開發費多少錢丘比特幣圖片Ultragate
Facebook最近推出的Libra引發了監管方面的問題,法國正在G7集團內部組建一個特別工作組來研究審查這些問題.
1900/1/1 0:00:00TokenInsight整理了6月15日-6月23日,區塊鏈行業在穩定幣、交易所、挖礦、監管、行業應用、審計方面發生的大事件,并對此進行了點評.
1900/1/1 0:00:00一個比特幣的投資行為學研究為了回應我自己三年前寫的《我為什么沒在比特幣上發財》中的一些疑問。當時我寫下了這段話:“要說對比特幣的了解程度我絕對不算高,但也絕對不能算外行.
1900/1/1 0:00:00文|梁雨山 如Circle首席執行官JeremyAllaire的預言,比特幣在本周成功沖擊10000美元,突破多日以來的關鍵阻力位,創年內新高.
1900/1/1 0:00:00預期性的突破再次來臨,當前BTC的走勢已經突破了11000美元,并保持著上攻的姿態,當前價位一直持續在11000美元附近調整,上方的拋壓暫時壓制住了走勢的爆發,緩解了上攻的壓力.
1900/1/1 0:00:00時間不等人。 按市值計算,Zcash是全球第二大隱私幣,它有一個預設的截止日期。目前Zcash20%的區塊獎勵會發放給負責開發的個人和實體,包括ElectricCoinCompany和Zcash.
1900/1/1 0:00:00