一般的密碼重置的設計都是分為以下四步的:
1.輸入賬戶名
2.驗證身份
3.重置密碼
4.完成
複製**
通常漏洞是會存在於2或者3步驟中,下面來看看常見的一些重置密碼漏洞的方式。
1 這種重置密碼是最多見最容易出現的一類,那就是手機驗證碼爆破從而重置密碼。
wooyun: 愛周遊任意使用者密碼重置及 xss漏洞
wooyun: 麥包包 任意使用者密碼重置漏洞
wooyun: 換個姿勢第三次重置拉手網任意使用者密碼
這這種設計一般是在找回密碼的時候,會給指定的手機號傳送乙個用於驗證身份的驗證碼,然後只要使用者輸入正確的驗證碼,就可以進行密碼重置了。
這種設計產生重置密碼漏洞的情況,一般是由於驗證設計過於簡單,而且對校驗碼的校驗使用次數沒有進行限制,導致正確的驗證碼可以被列舉爆破,從而重置密碼。此方法也是最常見的重置密碼的方式,因為大多數廠商最開始的設定都是採取的4-6位純數字驗證碼的驗證方式,而且是沒有防止爆破的設計。
2 也是採取的爆破,方法和#1類似,不過就是手機驗證碼變成了郵箱中的驗證碼。
wooyun: 有利網 也可以任意使用者密碼重置額~
wooyun: 驅動之家 任意使用者密碼重置
wooyun: 咕咚網設計缺陷導致任意使用者密碼可重置
這這種設計一般是在找回密碼的時候,會給指定郵箱傳送乙個用於校驗的url鏈結,鏈結中一般會有乙個引數就是用於驗證身份的驗證碼,然後使用者點選指定url就可以進入重置密碼的頁面從而去重置密碼了。
這種設計產生重置密碼漏洞的情況,也是由於重置密碼鏈結中的驗證碼引數沒有設計過於簡單,可以被爆破,從而可以重置密碼。
3 採取的方法是偷梁換柱,一般是那種會給指定郵箱傳送url重置密碼鏈結的那種。
wooyun: 麥包包 任意使用者密碼重置漏洞(二)
wooyun: 經緯網可重置任意使用者密碼
wooyun: 飛馬網系列之四任意使用者密碼重置漏洞(秒改非爆破)
這這種設計一般是在找回密碼的時候,會給指定郵箱傳送乙個用於校驗的url鏈結,鏈結中一般肯定會存在2個比較重要的引數,乙個是使用者名稱(或者uid、qq郵箱之類的能代表使用者身份的引數),另乙個就是乙個加密的字串(通過伺服器端的某種演算法生成的用來驗證使用者身份的引數)。然後使用者在重置密碼的時候,點選郵箱中的重置密碼鏈結,就可以重置帳號密碼了。
這種設計產生重置密碼漏洞的情況,一般是由於重置密碼鏈結中的表示使用者名稱的引數和用於校驗的加密字串引數沒有進行一一對應,導致可以被黑客偷梁換柱,從而重置密碼。
也就是說,那個驗證身份的加密字串是萬能的。
比如生成的重置密碼url為: 然後由於這裡的引數code在伺服器端驗證的時候,只要其自身的演算法滿足伺服器端的驗證就直接通過了,不會去驗證這個code是不是和wooyun1賬戶對應的。
從而,黑客可以直接利用url: 重置帳號wooyun2的密碼。
4 同樣是偷梁換柱,這種一般是在最後一步設定新密碼的時候,程式設計師往往會疏忽驗證使用者身份,從而被偷梁換柱,重置密碼。這種一般是由於前面2步驟中已經驗證了身份,然後3步驟重置密碼的時候沒有對使用者身份進行持續性的驗證導致的。
wooyun: like團任意使用者密碼重置(秒改)
wooyun: 科大訊飛某系統任意賬號重置密碼漏洞
wooyun: 某同志手機交友應用200w使用者密碼任意重置(可拐走別人男友)
5 有的時候雖然加密字串的演算法很複雜,但是在重置密碼的過程中,要是程式設計師自己不小心將其洩漏了,那也可以被重置密碼。這種屬於程式設計師自己沒有將開發除錯時候的一些資料在正式上線前去掉導致的。
wooyun: 天天網任意賬戶密碼重置(二)
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: 萬達某重要平台任意使用者密碼重置
9 有的時候csrf利用好的話,也可以重置使用者甚至是管理員的密碼。這種一般是由於登入帳號後重置密碼或者繫結郵箱、手機號的時候沒有token也沒有驗證refer導致的。
wooyun: 糗事百科另類方式重置使用者密碼
wooyun: 看我如重置暴風影音賬戶密碼(需要與使用者互交)
wooyun: 土豆網郵箱繫結csrf(可導致劫持賬號)
10 有時候xss漏洞也可以重置密碼,當然這種也是因為本身重置密碼這裡就有其他的設計缺陷。這種一般是用xss劫持了賬戶後,由於某些奇怪的設計造成的。
wooyun: 宜搜儲存型xss+重置密碼利用
通過了解以上10種常見的重置密碼的漏洞,你是不是也感覺收穫了蠻多的額。
整理iBATIS的一些重要點和一些常見問題的解決
1 ibatis配置 增加記錄時返回隨機生成的主鍵值 2.動態新增引數 3.關鍵字 和 的區別 乙個專案中在寫ibatis中的sql語句時,order by field 執行時總是報錯,後來上網查了查,才知道這裡不該用 而應該用 隨即查了下 與 的區別 總結如下 1.是把傳入的資料當作字串,如 fi...
JS 整理javascript中一些常見的陣列方法
1 將陣列轉為字串 array.prototype.join var arr 1,2,3 arr.join 1,2,3 arr.join 1 2 3 重複的字串 function repeatstring str,n repeatstring a 3 aaa repeatstring hi 5 hi...
iOS 一些常見問題的整理
對於通知,大家想必都不陌生,它是乙個單例,允許當事件發生時通知一些物件,讓我們在低程度耦合的情況下,來達到通訊的目的。通知的優勢 1.不需要編寫太多 實現比較簡單 2.對於乙個發出的通知,可以多個物件作出反應,即是說通知是一對多的形式 通知的缺點 1.在編譯期不會檢查通知是否能夠被觀察者正確處理 2...