一些常見的重置密碼漏洞分析整理

wyzsk發表於2020-08-19
作者: px1624 · 2014/05/22 11:51

0x00 前言


一般的密碼重置的設計都是分為以下四步的:

1.輸入賬戶名
2.驗證身份
3.重置密碼
4.完成  

通常漏洞是會存在於2或者3步驟中,下面來看看常見的一些重置密碼漏洞的方式。

0x01 爆破型別


1 這種重置密碼是最多見最容易出現的一類,那就是手機驗證碼爆破從而重置密碼。

WooYun: 愛周遊任意使用者密碼重置及 XSS漏洞

WooYun: 麥包包 任意使用者密碼重置漏洞

WooYun: 換個姿勢第三次重置拉手網任意使用者密碼

這這種設計一般是在找回密碼的時候,會給指定的手機號傳送一個用於驗證身份的驗證碼,然後只要使用者輸入正確的驗證碼,就可以進行密碼重置了。

這種設計產生重置密碼漏洞的情況,一般是由於驗證設計過於簡單,而且對校驗碼的校驗使用次數沒有進行限制,導致正確的驗證碼可以被列舉爆破,從而重置密碼。此方法也是最常見的重置密碼的方式,因為大多數廠商最開始的設定都是採取的4-6位純數字驗證碼的驗證方式,而且是沒有防止爆破的設計。

2 也是採取的爆破,方法和#1類似,不過就是手機驗證碼變成了郵箱中的驗證碼。

WooYun: 有利網 也可以任意使用者密碼重置額~

WooYun: 驅動之家 任意使用者密碼重置

WooYun: 咕咚網設計缺陷導致任意使用者密碼可重置

這這種設計一般是在找回密碼的時候,會給指定郵箱傳送一個用於校驗的url連結,連結中一般會有一個引數就是用於驗證身份的驗證碼,然後使用者點選指定url就可以進入重置密碼的頁面從而去重置密碼了。

這種設計產生重置密碼漏洞的情況,也是由於重置密碼連結中的驗證碼引數沒有設計過於簡單,可以被爆破,從而可以重置密碼。

0x02 秒改型別


3 採取的方法是偷樑換柱,一般是那種會給指定郵箱傳送url重置密碼連結的那種。

WooYun: 麥包包 任意使用者密碼重置漏洞(二)

WooYun: 經緯網可重置任意使用者密碼

WooYun: 飛馬網系列之四任意使用者密碼重置漏洞(秒改非爆破)

這這種設計一般是在找回密碼的時候,會給指定郵箱傳送一個用於校驗的url連結,連結中一般肯定會存在2個比較重要的引數,一個是使用者名稱(或者uid、qq郵箱之類的能代表使用者身份的引數),另一個就是一個加密的字串(透過伺服器端的某種演算法生成的用來驗證使用者身份的引數)。然後使用者在重置密碼的時候,點選郵箱中的重置密碼連結,就可以重置帳號密碼了。

這種設計產生重置密碼漏洞的情況,一般是由於重置密碼連結中的表示使用者名稱的引數和用於校驗的加密字串引數沒有進行一一對應,導致可以被駭客偷樑換柱,從而重置密碼。

也就是說,那個驗證身份的加密字串是萬能的。

比如生成的重置密碼url為:http://www.xx.com/xxoo.php?username=wooyun1&code=asdfghjkl 然後由於這裡的引數code在伺服器端驗證的時候,只要其自身的演算法滿足伺服器端的驗證就直接透過了,不會去驗證這個code是不是和wooyun1賬戶對應的。

從而,駭客可以直接利用url:http://www.xx.com/xxoo.php?username=wooyun2&code=asdfghjkl 重置帳號wooyun2的密碼。

4 同樣是偷樑換柱,這種一般是在最後一步設定新密碼的時候,程式設計師往往會疏忽驗證使用者身份,從而被偷樑換柱,重置密碼。這種一般是由於前面2步驟中已經驗證了身份,然後3步驟重置密碼的時候沒有對使用者身份進行持續性的驗證導致的。

WooYun: like團任意使用者密碼重置(秒改)

WooYun: 科大訊飛某系統任意賬號重置密碼漏洞

WooYun: 某同志手機交友應用200W使用者密碼任意重置(可拐走別人男友)

5 有的時候雖然加密字串的演算法很複雜,但是在重置密碼的過程中,要是程式設計師自己不小心將其洩漏了,那也可以被重置密碼。這種屬於程式設計師自己沒有將開發除錯時候的一些資料在正式上線前去掉導致的。

WooYun: 天天網任意賬戶密碼重置(二)

WooYun: APP終結者11#大連萬達電影任意使用者賬戶登入

WooYun: 優酷網任意使用者密碼修改漏洞(驗證可以秒改)

6 有的時候利用郵箱的url重置密碼,雖然不存在#3 #4 #5的情況。但是由於加密演算法過於簡單而被破解,導致密碼重置。這種一般都是一些簡單的加密演算法,將一些關鍵引數比如使用者名稱、郵箱、手機號、驗證字元、時間戳等,進行一定的規則的組合然後進行md5、base64加密。

WooYun: djcc舞曲網任意使用者密碼重置漏洞(已證明)

WooYun: 猥瑣方式再次重置拉手網使用者密碼

WooYun: 金蝶雲之家部落格任意使用者密碼重置

WooYun: 噹噹網任意使用者密碼修改漏洞第三次

7 重置密碼一般需要四個步驟:1.輸入賬戶名2.驗證身份3.重置密碼4.完成。有時候當你進行了1之後,直接去修改URL或者前端程式碼去進行3步驟從而也能成功的繞過了2的驗證去重置密碼。這種一般是由於沒有對關鍵的身份驗證的引數進行追蹤導致的。

WooYun: 世峰戶外商城設計缺陷任意重置密碼

8 有時候修改密碼的時候會給郵箱或者手機傳送一個新密碼,那麼抓包將手機號或者郵箱改成我們自己的會怎麼樣呢?這種一般是由於沒有驗證手機號或者郵箱的對應身份導致的。

WooYun: 萬達某重要平臺任意使用者密碼重置

0x03 需要別人互動


9 有的時候CSRF利用好的話,也可以重置使用者甚至是管理員的密碼。這種一般是由於登入帳號後重置密碼或者繫結郵箱、手機號的時候沒有token也沒有驗證refer導致的。

WooYun: 糗事百科另類方式重置使用者密碼

WooYun: 看我如重置暴風影音賬戶密碼(需要與使用者互交)

WooYun: 土豆網郵箱繫結csrf(可導致劫持賬號)

10 有時候XSS漏洞也可以重置密碼,當然這種也是因為本身重置密碼這裡就有其他的設計缺陷。這種一般是用XSS劫持了賬戶後,由於某些奇怪的設計造成的。

WooYun: pptv影片上傳稽核透過後儲存型xss(百餘條使用者資訊可利用有vip可改密碼劫持)

WooYun: 宜搜儲存型XSS+重置密碼利用

透過了解以上10種常見的重置密碼的漏洞,你是不是也感覺收穫了蠻多的額。

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章