0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

任意賬號(hào)密碼重置的6種方法

jf_hKIAo4na ? 來源:博客園 ? 作者:Carrypan ? 2022-11-30 15:44 ? 次閱讀

1、原理

通過手機(jī)找回密碼,響應(yīng)包中包含短信驗(yàn)證碼

2、案例

某網(wǎng)站選擇用手機(jī)找回密碼:

cf13684c-3eea-11ed-9e49-dac502259ad0.png

點(diǎn)擊發(fā)送按鈕,攔截回包,可以查看到短信驗(yàn)證碼,如下圖所示:

cf485a84-3eea-11ed-9e49-dac502259ad0.png

3、修復(fù)建議

響應(yīng)包中去掉短信驗(yàn)證碼

二、修改用戶名、用戶ID或手機(jī)號(hào)重置任意賬號(hào)密碼

1、原理

通過手機(jī)找回密碼是一般需要短信驗(yàn)證碼驗(yàn)證(這里可以嘗試爆破或繞過)。當(dāng)我們輸入正確的手機(jī)號(hào)和正確的短信驗(yàn)證碼,然后進(jìn)入重置密碼的最后一步,也就是輸入新的密碼輸入密碼后提交到服務(wù)端的post數(shù)據(jù)包需要包含當(dāng)前用戶的身份信息

而一般網(wǎng)站是通過用戶名或用戶ID來標(biāo)識(shí)用戶身份的,如果這個(gè)用戶名或用戶ID沒有和當(dāng)前手機(jī)號(hào)、短信驗(yàn)證碼進(jìn)行綁定;

也就是說服務(wù)端只驗(yàn)證用戶名、ID是否存在,而不去驗(yàn)證用戶和當(dāng)前手機(jī)號(hào)是否匹配,那么我們就可以通過修改用戶名、ID去修改其他用戶的密碼了。

當(dāng)然可以修改的地方不限于找回密碼的數(shù)據(jù)包,比如修改資料的地方也可能存在這樣的漏洞。

2、案例

以某網(wǎng)站修改任意用戶資料導(dǎo)致修改任意賬號(hào)密碼為例,截取的數(shù)據(jù)包為:

POST /user/info_do HTTP/1.1Host: www.XXX.comUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:59.0) Gecko/20100101 Firefox/59.0Accept: */*Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateReferer: http://www.XXX.com/user/info_viewContent-Type: application/x-www-form-urlencoded; charset=UTF-8 X-Requested-With: XMLHttpRequestContent-Length: 211Cookie: yunsuo_session_verify=9341a54b945886e9485ff54a17650468; PHPSESSID=sgbibaqe7f8f6okerps8jip916; sdrcUserlockcount=1; sdrcUseruserid=14943Connection: keep-alive
password=A123456&email=1%40qq.com&address=1&postcode=1&mobile=13888888888&sex=man&birthday=0000-00-00°ree=collegeLT&testsite=1&post=1&__hash__=b0b15b067dea00bd34fd39421b7ef684_efc2399e5c4b2071f261e75fe3362d4fa

經(jīng)分析與嘗試,發(fā)現(xiàn)數(shù)據(jù)包中的sdrcUseruserid的值是用來標(biāo)識(shí)當(dāng)前用戶身份的,那么我們就想到這個(gè)id可否任意修改呢?

答案是肯定的,我們修改id的值為14942、14941都是可以成功的,截圖如下:

cf5c5638-3eea-11ed-9e49-dac502259ad0.png

cf86e5c4-3eea-11ed-9e49-dac502259ad0.png

3、修復(fù)建議

用戶操作個(gè)人信息(讀取、修改)時(shí),服務(wù)端要對(duì)當(dāng)前用戶身份進(jìn)行驗(yàn)證,防止越權(quán)操作;

用來標(biāo)識(shí)用戶身份的名稱或ID可以使用自定義加密,也可以隱藏這些參數(shù),直接從cookie中獲取用戶信息;

用戶修改密碼時(shí)應(yīng)該先對(duì)舊密碼進(jìn)行驗(yàn)證,或者使用手機(jī)短信驗(yàn)證;

用戶修改手機(jī)號(hào)時(shí)需要先對(duì)原手機(jī)號(hào)進(jìn)行驗(yàn)證。

三、修改響應(yīng)包重置任意賬號(hào)密碼

1、原理

通過手機(jī)找回密碼一般需要短信驗(yàn)證碼驗(yàn)證,服務(wù)端需要告訴客戶端,輸入的驗(yàn)證碼是否正確。

如果客戶端收到true的信息,那么就會(huì)向帶著true的信息向服務(wù)端請(qǐng)求進(jìn)入下一步,而服務(wù)端收到true的信息,就會(huì)允許客戶端進(jìn)入下一步。

反之,如果是false的信息,服務(wù)端就不會(huì)允許客戶端進(jìn)入下一步。

也就是說我們進(jìn)入下一步的關(guān)鍵是讓服務(wù)端收到客戶端的true信息。

而借助burpsuite,我們可以修改服務(wù)端返回到客戶端的信息,這樣一來,我們就可以輸入任意短信驗(yàn)證碼,然后將服務(wù)端返回的false信息改為true就可以繞過短信驗(yàn)證碼的驗(yàn)證了。

2、案例

下面是找回密碼的一個(gè)流程,輸入正確的用戶名,跳到第二步,這時(shí)需要輸入短信驗(yàn)證碼,這里我們隨意輸入一個(gè)短信驗(yàn)證碼:123456,然后抓取服務(wù)端返回的信息如下所示。

cfa660fc-3eea-11ed-9e49-dac502259ad0.png

cfb443d4-3eea-11ed-9e49-dac502259ad0.png

把回包中false改為true后,即可繞過短信驗(yàn)證碼驗(yàn)證,結(jié)果如下圖所示。

cfe74bc6-3eea-11ed-9e49-dac502259ad0.png

cff735a4-3eea-11ed-9e49-dac502259ad0.png

3、修復(fù)建議

服務(wù)端對(duì)驗(yàn)證碼進(jìn)行驗(yàn)證,結(jié)果為true時(shí)直接跳到下一步,無需向客戶端單獨(dú)返回驗(yàn)證結(jié)果;

輸入新的密碼,然后提交到服務(wù)端,服務(wù)端應(yīng)對(duì)當(dāng)前用戶名、手機(jī)號(hào)、短信驗(yàn)證碼進(jìn)行二次匹配驗(yàn)證,都為true時(shí),才可以修改成功。

四、跳過驗(yàn)證步驟重置任意賬號(hào)密碼

1、原理

找回密碼流程一般需要四個(gè)步驟:

1、驗(yàn)證用戶名;

2、驗(yàn)證短信驗(yàn)證碼;

3、輸入新密碼;

4、重置成功。

這四個(gè)步驟應(yīng)該緊緊相連,互相相關(guān),只有通過了第一個(gè)步驟驗(yàn)證才可以進(jìn)入下一個(gè)步驟,如果每個(gè)步驟之間沒有進(jìn)行關(guān)聯(lián)性驗(yàn)證,就可能導(dǎo)致跳過關(guān)鍵驗(yàn)證步驟,從而導(dǎo)致重置任意賬號(hào)密碼。

2、案例

某網(wǎng)站找回密碼有四個(gè)步驟,第一步輸入正確的用戶名,第二步輸入手機(jī)號(hào)和正確的驗(yàn)證碼,截取服務(wù)端返回的數(shù)據(jù)包為:

object moved

object moved to here.


上述數(shù)據(jù)包是用來跳轉(zhuǎn)到輸入密碼的界面。

我們猜想能否輸入任意驗(yàn)證碼,然后直接訪問輸入密碼界面,結(jié)果是可以的,而且重置密碼成功了。

經(jīng)分析,此處成功的關(guān)鍵是頁面跳轉(zhuǎn)到輸入密碼界面,當(dāng)我們輸入新的密碼后,提交到服務(wù)端,服務(wù)端并沒有對(duì)當(dāng)前用戶身份進(jìn)行二次驗(yàn)證,只是簡單的獲取到用戶名或ID以及新密碼,從而導(dǎo)致跳過短信驗(yàn)證碼驗(yàn)證重置任意賬號(hào)密碼。

3、修復(fù)建議

每一個(gè)步驟都要對(duì)前一個(gè)步驟進(jìn)行驗(yàn)證;

最后提交新密碼時(shí)應(yīng)對(duì)當(dāng)前用戶名或ID、手機(jī)號(hào)、短信驗(yàn)證碼進(jìn)行二次匹配驗(yàn)證。

五、重置密碼鏈接中token值未驗(yàn)證或不失效導(dǎo)致任意賬號(hào)密碼重置

1、原理

使用郵箱重置密碼時(shí),服務(wù)端向郵箱發(fā)送一個(gè)重置密碼的鏈接,鏈接中包含當(dāng)前用戶的身份信息(如用戶名或用戶ID)和一個(gè)隨機(jī)生成的token信息,如果未對(duì)token值進(jìn)行驗(yàn)證或是驗(yàn)證后不失效,我們就可以通過修改用戶名或用戶ID來重置任意賬號(hào)密碼。

2、案例

某網(wǎng)站使用郵箱找回密碼時(shí),服務(wù)端向郵箱發(fā)送的鏈接為:

http://www.xxx.com/GetPwd.aspx?q=0x0531387a5a6c1227e4d6ba0ce16dc72e&r=3244166

d00edd58-3eea-11ed-9e49-dac502259ad0.png

經(jīng)嘗試,此處未對(duì)隨機(jī)生成的q值進(jìn)行驗(yàn)證或是驗(yàn)證了但是驗(yàn)證之后未失效,導(dǎo)致可以重復(fù)使用,最終只需要修改r為其他用戶ID,即可重置其他用戶密碼。

3、修復(fù)建議

服務(wù)端對(duì)客戶端提交的token值進(jìn)行驗(yàn)證;

保證token值使用一次后即失效,防止重復(fù)使用;

對(duì)用戶ID進(jìn)行自定義加密;

使用根據(jù)用戶ID生成的token值來標(biāo)識(shí)用戶,鏈接中不攜帶用戶ID。

六、找回密碼的短信驗(yàn)證碼可被爆破導(dǎo)致任意賬號(hào)密碼重置

1、原理

找回密碼時(shí)使用位數(shù)較少的短信驗(yàn)證碼,或者驗(yàn)證碼沒有設(shè)置有效時(shí)間限制,導(dǎo)致攻擊者借助自動(dòng)化工具在一定時(shí)間范圍內(nèi)爆破獲得短信驗(yàn)證碼,從而導(dǎo)致重置任意賬號(hào)密碼。

2、案例

某網(wǎng)站找回密碼時(shí)使用短信驗(yàn)證碼的一個(gè)數(shù)據(jù)包為:

Code=5000&u=13888888888&Check=dc5b94101cb4f23a9ce6ae71197fc5de&a=5

此處可以對(duì)Code進(jìn)行爆破,如下圖所示:

d02cae78-3eea-11ed-9e49-dac502259ad0.png

3、修復(fù)建議

驗(yàn)證碼滿足一定復(fù)雜度,且限制驗(yàn)證碼生效時(shí)間;

驗(yàn)證短信驗(yàn)證碼的數(shù)據(jù)包使用token值并驗(yàn)證,防止自動(dòng)化工具爆破

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 手機(jī)
    +關(guān)注

    關(guān)注

    35

    文章

    6891

    瀏覽量

    157913
  • 密碼
    +關(guān)注

    關(guān)注

    8

    文章

    191

    瀏覽量

    30513
  • 服務(wù)端
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    7025

原文標(biāo)題:任意賬號(hào)密碼重置的6種方法

文章出處:【微信號(hào):菜鳥學(xué)安全,微信公眾號(hào):菜鳥學(xué)安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    賬號(hào)登錄不上,密碼重置也不對(duì)

    `如題,我以前的賬號(hào),兩個(gè)賬號(hào)登錄的時(shí)候都提示密碼錯(cuò)誤,然后通過點(diǎn)擊找回密碼,進(jìn)入郵箱點(diǎn)擊相關(guān)鏈接后,進(jìn)行密碼
    發(fā)表于 05-20 09:23

    賬號(hào)登錄不了,密碼重置不成功

    `論壇管理員,您好!我的賬號(hào)現(xiàn)在不知道是怎么回事,登錄的時(shí)候老是提示密碼錯(cuò)誤。通過郵件進(jìn)行密碼重置,可是重置提交后又顯示參數(shù)錯(cuò)誤,請(qǐng)您們查證
    發(fā)表于 05-20 09:38

    【初學(xué)者適用】簡單的賬號(hào)密碼登錄界面

    ------新手上路,第一次發(fā)帖--------一個(gè)簡單的賬號(hào)密碼登錄界面,歡迎各位看官交流指導(dǎo)。[img=110,0][/img]下面是程序框圖[img=110,0][/img]歡迎大家留言交流交流
    發(fā)表于 04-01 11:39

    賬號(hào)問題

    使用qq快捷登陸和使用賬號(hào)密碼登陸不是同一賬號(hào),
    發(fā)表于 07-11 23:40

    linux系統(tǒng)下mongodb添加賬號(hào)密碼的步驟如下

    MongoDB在默認(rèn)情況下是沒有帳密的,為了數(shù)據(jù)的安全性,需要向mongo添加賬號(hào)密碼。步驟如下:
    發(fā)表于 07-12 07:29

    請(qǐng)教debian_xfce首次登陸的root賬號(hào)密碼是什么 ?

    請(qǐng)教debian_xfce 首次登陸的root 賬號(hào)密碼是什么試過1234123456 都不對(duì)啊,多謝啊
    發(fā)表于 07-25 03:53

    labview生成exe格式文件后,提醒賬號(hào)密碼錯(cuò)誤

    labview做的vi里面,調(diào)用了一個(gè)Access做的數(shù)據(jù)庫(存放賬號(hào)密碼的),然后在生成exe程序時(shí)候也把該數(shù)據(jù)庫放在始終包括里面,但是生成的exe總是提醒賬號(hào)密碼錯(cuò)誤
    發(fā)表于 10-06 10:07

    飛凌提供的LINUX虛擬機(jī)賬號(hào)密碼是多少

    飛凌提供的LINUX 虛擬機(jī)賬號(hào)密碼是多少? 好像沒有找到
    發(fā)表于 01-05 06:11

    請(qǐng)問OKMX6Q-C板子的ssh登錄方式的賬號(hào)密碼是什么?

    想問下OKMX6Q-C板子的ssh登錄方式的賬號(hào)密碼是什么?
    發(fā)表于 01-07 06:27

    如何獲取linux user賬號(hào)密碼的root權(quán)限呢

    現(xiàn)在我win7上裝的虛擬機(jī),朋友了給了我一個(gè)鏡像,我直接用虛擬機(jī)打開這個(gè)linux鏡像,里面candence什么的都裝好了但是這個(gè)linux我只有一個(gè)user賬號(hào)密碼,但是新裝軟件什么的都需要root權(quán)限,請(qǐng)問我怎么獲得?
    發(fā)表于 06-21 14:54

    微軟計(jì)劃用手機(jī)解鎖電腦 賬號(hào)密碼技術(shù)將淘汰

    眾所周知,現(xiàn)在的電腦密保都是設(shè)置——“賬號(hào)密碼”,但是微軟現(xiàn)在想出新招,在未來微軟計(jì)劃將淘汰密碼這種落后技術(shù),將支持用手機(jī)解鎖電腦。
    發(fā)表于 02-10 12:21 ?1845次閱讀

    pppoe的賬號(hào)密碼忘了怎么辦_pppoe的兩個(gè)階段

    本文首先介紹了pppoe的賬號(hào)密碼忘了的解決方法,其次介紹了pppoe的兩個(gè)階段,最后介紹了pppoe的使用缺陷。
    發(fā)表于 04-27 11:08 ?1.8w次閱讀

    賬號(hào)密碼存儲(chǔ)生成

    賬號(hào)密碼存儲(chǔ)生成資料分享
    發(fā)表于 11-23 15:17 ?2次下載

    mysql密碼忘了怎么重置

    mysql密碼忘了怎么重置? MySQL是一開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),密碼用于保護(hù)數(shù)據(jù)庫的安全性和保密性。如果你忘記了MySQL的密碼
    的頭像 發(fā)表于 12-27 16:51 ?6733次閱讀

    MySQL密碼忘記了怎么辦?MySQL密碼快速重置方法步驟命令示例!

    MySQL密碼忘記了怎么辦?MySQL密碼快速重置方法步驟命令示例! MySQL是一常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),如果你忘記了MySQL的
    的頭像 發(fā)表于 01-12 16:06 ?783次閱讀