驗證碼滲透最全總結
> 不少人在碰見驗證碼的時候,大多數只是看了一眼就過去了,沒想到驗證碼還有啥可測試的。但其實驗證碼也能在項目中導致高危,并且驗證碼漏洞能在一定情況下造成危害。
驗證碼總結
驗證碼分為兩塊內容,一塊是圖形驗證碼,一塊是短信驗證碼。下面是對這些技巧總結的思維導圖。
圖形驗證碼
圖形驗證碼長寬可控
簡單測試方法,就是看到一個登錄框,然后新建打開圖片鏈接,在圖片鏈接中就有機會看到兩個參數值,一個是 width,一個是 length。這兩個參數是計算圖片驗證碼的長寬,如果長寬過高就會過度消耗的是服務器的 CPU 資源。
當length為比較大的時候,響應時間為2767millis
注意:該漏洞能造成服務器拒絕服務攻擊。有的 SRC 里面注明了,禁止使用 DDOS 攻擊,這種漏洞是不收的,如果提交了漏洞,很有可能面臨法律責任。
圖形驗證碼可繞過
有時候開發(fā),會寫兩套圖形驗證碼流程,一套是在生產運行階段必須使用正確驗證碼才能通過服務器校驗。另外一套是在測試 SIT 環(huán)境下,把驗證碼設置為只要是 null 或者是空都可以登錄驗證碼置為空,提高開發(fā)工作效率。還有的時候,將驗證碼修改為 true 就好了。這個是因為開發(fā)在進行圖形驗證碼判斷的時候,只要是驗證碼收到的是 true 就會通過。具體測試過程已經找不到了,大概寫一下吧。
圖形驗證碼不失效
簡單易懂,圖形驗證碼沒有對應的失效機制。導致圖形驗證碼能被多次利用。圖形驗證碼在使用后未失效,發(fā)送短信時抓包,發(fā)送到Repeter中進行重放,可以發(fā)送成功!
圖形驗證碼可識別
這個就是開發(fā)在制作圖形驗證碼功能的時候,沒有將圖形驗證碼加入足夠多的噪點,使驗證碼能夠被現(xiàn)有的工具進行識別。一般是項目硬湊數用的,SRC 全部都不收。具體不做解釋
圖形驗證碼隨機值可控
都知道圖形驗證碼是后端隨機生成的。那么隨機生成的時候,有沒有可能是能控制這個隨機值?有可能! 生成驗證碼的隨機值被寫在了 url 里面
將characters固定為aaaa,可以看到圖形驗證碼為aaaa
圖形驗證碼返回到前端
測試過程已經找不到了,口頭描述下大致就是登錄后會在響應包中返回了下次圖形驗證碼的內容。
短信驗證碼
我們已經寫完了圖形驗證碼部分,現(xiàn)實情況下短信驗證碼也是比較多。短信驗證碼的漏洞技巧要比圖形驗證碼多很多
短信炸彈縱向
在一個限制時間的情況下對一個手機號,發(fā)送的短信驗證碼條數超過發(fā)送預期,這種漏洞我們都稱為短信炸彈or短信轟炸or短信炸彈縱向
不停點擊repeter或者放到intruder里面,就可以實現(xiàn)一個手機號接收到多條短信
短信炸彈橫向
上面我們提到了在限定時間內,對一個手機號發(fā)送超過預期的短信條數是短信轟炸。造成的結果就是浪費短信資源。如果開發(fā)把這個漏洞給改了,那么還有沒有漏洞?還有?不能給一個人發(fā)送短信驗證了,那么給其他人發(fā)送驗證碼一樣的。
將phone設置成變量,進行遍歷
短信驗證碼可爆破
我們講了 2 個發(fā)送短信驗證碼,都知道驗證碼通常 4 位數或者 6 位數的數字驗證碼。如果服務器沒有限制提交的驗證碼的次數,那么我們可以爆破這個驗證碼。并且如果有 4 位驗證碼被爆破成功的話,在 SRC 里面通常是按照高危處理。
短信驗證碼可編輯
我們講了發(fā)送短信驗證碼以及爆破短信驗證碼。我們知道短信驗證碼功能發(fā)送的是短信,那么我們就有可能把短信內容給更改。
通過修改transAmt 參數內容,可隨意修改短信內容
短信炸彈的繞過技巧
我們在了解基礎短信驗證碼的漏洞后,相應的開發(fā)也會進行了解。那么我們就需要增加技巧來繞過這些東西。
短信炸彈的繞過技巧 1--特殊字符
通常,開發(fā)在發(fā)送短信驗證碼的時候,沒有對特殊字符進行過濾。比如在手機號是 15312341234。我們加上+86,變成+8615312341234,這樣的話服務器就有可能判定為兩個手機號了。
在 mobile=15312341234 的前面,加空格,86,086,0086,+86,0,00,/r,/n,?,#,!,,...只要想法多就有可能繞過。
控制phone參數進行攻擊
短信炸彈的繞過技巧 2--添加 XFF
在請求包中添加XFF頭,有的時候服務器是按照IP地址進行判定的。
短信炸彈的繞過技巧 3--添加多個值
在發(fā)送手機短信驗證碼的時候可以把一個參數賦上多個值。比如 Mobile=18312341234,13612341234&code=1234
短信炸彈的繞過技巧 4--添加多個參數
比如 Mobile=18312341234&Mobile=13612341234
短信炸彈的繞過技巧 5--修改返回包
在發(fā)送短信驗證碼的數據包,修改返回包的 Flase 為 Success
短信炸彈的繞過技巧 6--并發(fā)
對短信驗證碼的數據包進行并發(fā),有機會繞過限制
在響應包里面可以看到短信驗證碼
在抓取短信驗證碼的數據包后,在 response 可以看到短信驗證碼
提交別人的驗證碼
假設有一個需要短信驗證碼功能點。給自己手機號 13512341234 發(fā)送驗證碼為 111111,給別人手機號 18312341234 收到驗證碼為 222222。那么自己手機號使用 222222 驗證碼,也能正常登錄
每次短信驗證碼都是同一個
一個手機號,點擊 2 次發(fā)送短信驗證碼,驗證碼都是同一個。這樣的情況下,可以試試爆破驗證碼,如果爆破次數無限制,還是存在驗證碼固定這樣漏洞的
驗證碼不失效 1
比如驗證碼是在修改密碼處使用。在使用短信驗證碼進入修改密碼后,驗證碼沒有失效。當前用戶還可以再次用這個短信驗證碼修改密碼
驗證碼不失效 2
場景:收到兩條短信驗證碼,時間順序為,1 在前,2 在后。收到的 2 后,1 還是沒有失效-
驗證碼繞過技巧
項目在上線前,只是寫好驗證碼接口,不會調用短信資源。因而為了功能登錄會把驗證碼設計成固定的比如嘗試 6 個 1,6 個 0 短信驗證碼
驗證碼技巧
在找回密碼方面,填寫完賬號名,要給A發(fā)短信驗證碼,通過burp攔截包,給B發(fā)送短信驗證碼。這樣的話,就能用B的驗證碼提交給A用,造成任意賬號密碼重置
本文僅用于技術討論與學習,利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,文章作者及本公眾號不為此承擔任何責任。
審核編輯:黃飛
-
cpu
+關注
關注
68文章
10804瀏覽量
210828 -
服務器
+關注
關注
12文章
8958瀏覽量
85081 -
驗證碼
+關注
關注
2文章
20瀏覽量
4685
原文標題:驗證碼滲透最全總結
文章出處:【微信號:菜鳥學信安,微信公眾號:菜鳥學信安】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論