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