日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GitChat · 安全 | 聊聊 「密码找回」

發布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GitChat · 安全 | 聊聊 「密码找回」 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來自 GitChat 作者:湯青松
更多使用技術,盡在微信公眾號:GitChat技術雜談

進入 GitChat 閱讀原文

WEB安全用戶密碼找回多案例安全攻防實戰

這次文章以wooyun的密碼找回代表性漏洞作為案例來講解,漏洞的描述會通過提交漏洞的原描述加上我的理解一一列出,通過密碼找回的過程描述,得出從漏洞的發現到漏洞的分析。

密碼找回邏輯測試一般流程,首先嘗試正常密碼找回流程,選擇不同找回方式,記錄所有數據包,分析數據包,找到敏感部分,分析后臺找回機制所采用的驗證手段,修改數據包驗證推測

內容主要是邏輯漏洞,技術性質的內容并不多,以發散思維為目標;所以web開發和安全同學都可以來看看

分享內容目錄

  • 用戶憑證暴力破解
  • 返回憑證
  • 郵箱弱token
  • 用戶憑證有效性
  • 重新綁定
  • 一、用戶憑證暴力破解

    四位或者六位的純數字例子。

    微信任意用戶密碼修改漏洞

    漏洞描述

    在微信官方的首頁上發現了找回密碼功能。

    點擊鏈接之后看到這個功能.來了興趣。

    在這個頁面輸入一個已經注冊了微信的手機號。

    看到了下面的提示信息

    點擊“我已收到驗證碼”按鈕,就跳轉到一個修改密碼的頁面,如下

    在這一步抓包.得到如下包文

    code 區域check=false&phone=18666666666&t=w_password_phone&isemail=0&value=18666666666&method=reset&country=A86&getmethod=web&password=zzzzzz&password2=zzzzzz&verifycode=1234

    將包文中的verifycode進行重復提交后,發現會提示下圖的信息

    這樣的話.就要想辦法去突破.

    經過多次嘗試后,發現如果在phone=18666666666的號碼后面,添加不為數字的字符時,可以繞過這個重復提交的限制.于是我推理出了一個驗證邏輯。
    如果phone=18666666666的嘗試次數大于閥值,則提示請求過于頻繁
    但在這一步之前沒有對phone進行提純.所以可以將特殊字符帶入
    但在下一步的時候進行了提純.只取了phone中的數字部分.
    然后在取出此號碼的verifycode進行比對.
    比對成功則修改密碼

    修改密碼成功.
    這個地方的薄弱環節在于微信重置密碼的驗證碼為4-5位純數字.
    且數字范圍在1000-20000之間
    也就是說.我只要嘗試19000次.我用50個線程發包.3分鐘即可成功修改一個密碼.

    #### 原因:

    雖然設置了請求閥值,但被猜解除了驗證方式,并且找到了繞過方式,驗證碼為4-5位的數字容易爆破

    二、返回憑證

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

    描述

    之前看到天天網有爆出漏洞的案例,這次我看看還有沒有,果然發現了一枚。

    和之前的漏洞一樣,打開了找回密碼頁面,按照了正常流程來找回密碼,填好郵箱和驗證碼,點擊下一步,然后抓包。

    在抓取到的數據包中發現,返回數據中會返回一個加密字符串,這讓我有點好奇心起來了,我把它記錄下來。

    還是按照了正常流程,打開了我的郵箱,看到了一封找回密碼的郵件,我點擊了里面的鏈接地址,進入如下的設置新密碼的頁面。

    這個時候,我把之前記錄到的可疑字符串和URL做了一下對比,發現之前的字符串就是當前頁面URL最后的部分,竟然是同一個!那我推測,天天網的這個找回密碼設計是有問題的,那個郵箱驗證碼就可以直接繞過了。

    設置新密碼的的URL為 http://login.tiantian.com/new...加密字符串/

    為了要驗證我的猜測,我在這里用天天網客服 service@tiantian.com 做了一次測試。還是用上面的正常找回密碼流程,然后抓包獲取到加密字符串,然后組合到上面的設置新密碼的url中,就成功重置了這個客服賬號的密碼了。給大家截個圖看看。

    原因

    找回密碼問題的答案在頁面源碼中可以看到。

    三、郵箱弱token

    奇虎360任意用戶密碼修改漏洞

    描述

    360是一個大廠,又是做安全業務的,很好奇它的網站安全性怎么樣?

    好奇的我做了一個測試,我首先按照正常流程走一次找回密碼,打開郵箱,查看給我來的郵件內容:

    360個人中心找回密碼(重要)!

    重設密碼地址:
    http://i.360.cn/findpwd/setpw...,
    馬上重設密碼!

    如果您沒有進行過找回密碼的操作,請不要點擊上述鏈接,并刪除此郵件。

    參數vc可以看出是一串32位字符的md5,通過cmd5.com網站解密后發現是個數字,類似1339744000,第一反應猜測是個用戶id。我腦袋里馬上出來了一個思路,遍歷id并且修改u變量是不是可以修改任意用戶密碼呢?試了一下不可以。 再仔細看了看這個數字,感覺比一般的用戶ID大,反復看了幾次,突然發現怎么像是個時間戳?

    通過時間戳格式化發現,還真是一個時間戳! 再次大膽的猜測了一下這里的流程,用戶取回密碼時,會產生一個精確的時間戳,和帳號綁定,記錄在某個密碼重置庫內。

    修改這個用戶密碼必須要知道綁定的時間戳才可以,從表面的邏輯來看,好像沒問題。不過開發同學忽略了一個細節,什么細節呢?如果這個時間戳是新生成的,我在一定得時間段內進行暴力猜解,很快就可以獲取到這個有效得鏈接。
    寫了個利用工具測試一下。

    打開之后果然驗證了我的猜測。

    修改密碼成功后,后跳到了登陸頁面,用剛剛修改得密碼登陸后看到了個人資料頁面。

    原因

    使用了特定值的加密作為token,被猜解到使用了時間戳的MD5值。在實際過程中我們也可以嘗試用戶名,手機,郵箱,等等的不同加密方式。

    四、用戶憑證有效性

    短信驗證碼例子。

    OPPO手機重置任意賬戶密碼(3)

    描述

    oppo在wooyun上暴露了好幾次,這次我也來試試。

    先逛逛網站,發現主站的帳號跟nearme開發者社區的帳號是通用的,所以如果只要重置了nearme社區帳號主站帳號也被修改。問題出現在www.nearme.com.cn

    依然按照正常找回密碼流程來,首先我用自己的手機號186**8188找回密碼,點擊獲取一下驗證碼,于是這時我手機收到了一個4位的數字驗證碼。

    然后到這步暫停,我不去使用驗證碼重置。

    接下來我要做安全測試了,用18688888888這個帳號進行測試。

    我們點擊登錄處的忘記密碼,輸入要找回的帳號18688888888。

    選擇通過手機號碼找回密碼。

    關鍵的地方在3.身份認證這一步,我把18688888888替換成我自己的手機號186**8188
    輸入剛才自己手機獲取到的驗證碼:0198,直接確認下一步。

    提交成功,輸入新密碼:oppoceshi1。

    確認一下,重置成功。

    那么我們接下來就是要用18688888888:oppoceshi1。

    登錄一下,測試是否成功以我自己的手機號跟驗證碼修改了此賬戶的密碼。

    登陸成功

    也就是說我已經成功用自己的手機號186**8188重置了18688888888的賬戶密碼。

    原因

    只驗證了驗證碼的有效性,卻沒有對驗證碼和手機號碼做綁定驗證。

    五、重新綁定

    手機綁定例子。

    網易郵箱可直接修改其他用戶密碼

    描述

    這次我們看一個126郵箱的找回密碼漏洞,這個還真和上面的方式有點不一樣。

    我先來注冊一個126郵箱測試帳號。

    點擊“立即注冊” ,后會跳轉到一個手機綁定得安全提示頁面來。

    注意看下這個鏈接的參數,有個uid,把uid修改成想要黑掉的網易郵箱帳戶的uid。

    填入一個自己的手機號碼,再把驗證碼發回來。

    那我們點擊確定并進入郵箱,這個時候這個目標網易郵箱已經被越權綁定了密保手機。

    現在我們要改密碼就比較簡單了,走正常的密碼取回流程,發現這個郵箱多了一個通過手機的取回方式,這個手機尾號就是我剛剛綁定的手機!

    密碼重置成功!!

    存在權限判斷不當,越權操作的接口是:

    http://security.mail.126.com/...

    原因:

    注冊過程的綁定手機頁面用過參數修改,將任意賬號綁定至可控手機,再來通過密碼找回流程找回

    最后

    通過這篇文章相信你對于密碼找回已經有一定的了解,我們發現上面的密碼找回思路基本都是通過邏輯推理加技術驗證來實現。這種類似的方法還有很多,希望這篇文章對大家的思維能有一點點幫助。


    總結

    以上是生活随笔為你收集整理的GitChat · 安全 | 聊聊 「密码找回」的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。