<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    漏洞挖掘|密碼找回中的套路

    一顆小胡椒2022-01-29 07:10:27

    前言

    首先這不是一篇總結性的帖子,畢竟對于密碼找回的測試方法網絡上有比較全面的總結

    比如用戶憑證暴力破解,系統返回了重要的憑證,郵箱手機弱token,token通用,session覆蓋,用戶憑證有效期問題,憑證算法被破解,前端校驗等等一系列漏洞。

    在這里附上前輩總結的腦圖,總結的也是比較詳細了。

    在日常的授權測試以及論壇瞎逛中,發現了一些對于個人而言比較有意思的找回密碼的操作,獨樂樂不如眾樂樂,分享出來希望能幫到各位師傅。

    Host Header欺騙

    有些人認為HTTP的聯機就是靠包里的HOST header來連接的,所以會認為如果修改掉包里的HOST, 那么就連接不到目標服務器,所以是不可控的。

    其實HTTP的聯機與包里的HOST并沒有啥關系, HTTP的聯機是TCP/IP建立的, 所以修改掉HOST HEADER并不會把包丟到另外一個服務器上。

    所以當應用使用$_SERVER['HTTP_HOST']獲取網站URL并拼接到找回密碼的鏈接當中就會產生漏洞。

    當你使用網站密碼重置功能時,網站URL可能在將來會改變,所以要動態地生成一個郵箱找回密碼的鏈接來匹配服務器的URL。

    這個時候可能就會使用$_SERVER['HTTP_HOST'],Host header 是客戶端提供的,意味著攻擊者可以將他們自己的網址寫到重置密碼的郵件當中,威脅任意用戶的賬戶安全。

    通過 X-Forwarded-Host 來拼接找回密碼鏈接中的域名,這樣可以通過寫入自己控制的域名,然后通過訪問記錄發現找回密碼鏈接,在拼接回正確域名重置任意用戶密碼。

    利用條件是受害者必須要點擊重置鏈接,你才能從你控制的網站中通過訪問記錄查看到重置鏈接。

    舉個kackerone的例子:

    Mavenlink允許用戶注冊一個mavenlink.com的子域名去展示他們的內容,所以他們需要一個方法去動態地決定公司的子域名。

    host header 可以設置為mavenlink.com的任意子域名,但是從mavenlink.com更改域名將會返回一個錯誤,而不是發送一個郵件。

    添加一個隨機的mavenlink.com的子域名,但是這會被定向到正確的頁面,沒辦法插入自己的域名。

    測試特殊字符。

    服務器接受host header中的一個問號,生成下面的鏈接

    Host: example.com?.mavenlink.com

    這樣就可以從用戶郵件中盜取密碼重置token

    當然這里還涉及到了域名檢測的繞過問題,一旦用戶點擊該鏈接,我們在example.com即可獲取到重置鏈接信息

    驗證鏈接批量發送

    在給后端傳遞要發送驗證鏈接的郵箱或者手機號時,可以傳遞一個郵箱或者手機的集合

    然后只要第一個郵箱或者手機號是數據庫里存在的郵箱或者手機號,那么 將會向這批手機號或者郵箱發送一樣的鏈接信息

    團隊測試中遇到的例子:

    在hackerone披露的漏洞中同樣存在這樣的例子

    通過發送兩個郵箱,一個為受害者的郵箱,一個為自己控制的郵箱,這樣就可以竊取到受害者郵箱中的重置密碼的鏈接,達到任意用戶密碼重置的目的。

    由于沒有看到過這種觸發該漏洞的源碼,猜測驗證環節是允許獲取一個類似于集合的東西,遍歷其中的值是否有存在于數據庫中的值

    如果存在則對該集合放行,然后發送驗證信息的邏輯同樣允許傳入一個集合再去遍歷集合中的每一個值,

    對每一個值發送一樣的驗證鏈接

    手機號碼中的sql注入

    由于sql語句的拼接問題導致在手機號處存在sql注入問題,其實這也告訴我們在sql語句的執行中只要涉及到了拼接問題就有可能存在漏洞

    在團隊授權的測試中也遇到過更改日期處存在sql注入的例子,反正都挺好玩的。

    這里用了一個sqrt函數,sqrt為一個平方根計算函數,當經過平方根計算之后和前面的數字拼接,手機號存在于數據庫中則發送驗證碼

    如果經過計算和前面的數字拼接手機號不存在于數據庫中則顯示驗證碼發送失敗

    通過這種方式來進行數據庫相關信息的猜測

    總結

    這種邏輯漏洞總是在攻與防的斗爭中不斷前進,肯定會有腦洞大開的人發現更多的騷套路,這是目前在測試中遇到過的幾種比較有意思的任意用戶密碼重置漏洞的操作,在互聯網上能找到例子的盡量采用了互聯網例子,如有侵權地方還望告知

    聲明:本公眾號所分享內容僅用于網安愛好者之間的技術討論,禁止用于違法途徑,所有滲透都需獲取授權!否則需自行承擔,本公眾號及原作者不承擔相應的后果.

    漏洞挖掘host
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    1業務通過 DNS 解析到外網,后面刪除了 A 記錄2測試業務0x04 什么樣的 ip 能進行 host 碰撞?這里我看網上很多人寫文章都是寫 ip 狀態碼為 40X 的時候,在進行 host 碰撞但是我想說,這不一定正確!!!實際上,我認為應該改為任何一個 ip 都有 host 碰撞的價值!!!將外網域名全部 ping 一下獲取一下 ip,并將收集到的目標 ip 段加外網域名 ip 段保存為一個 ipList.txt 備用
    0x01 前言暑假的時候發現的一個騷思路。有些網站開發者會提取request包里的host頭來獲取域名信息,但是host頭可以被修改,是不可信的。這里以密碼找回為例,進行一次host頭投毒攻擊。0x02 挖掘過程某網站存在密碼找回功能,本例使用host頭中毒來實現任意用戶密碼重置。
    Host Header欺騙有些人認為HTTP的聯機就是靠包里的HOST header來連接的,所以會認為如果修改掉包里的HOST, 那么就連接不到目標服務器,所以是不可控的。所以當應用使用$_SERVER['HTTP_HOST']獲取網站URL并拼接到找回密碼的鏈接當中就會產生漏洞
    漏洞挖掘是指對應用程序中未知漏洞的探索,通過綜合應用各種技術和工具,盡可能地找出其中的潛在漏洞。cookie的key為RememberMe,并對相關信息進行序列化,先使用aes加密,然后再使用base64編碼處理形成的。在網上關于Shiro反序列化的介紹很多,我這里就只簡單介紹一下,詳情各位可以看下大神們對其源碼的分析。
    0x01 確定目標無目標隨便打,有沒有自己對應的SRC應急響應平臺不說,還往往會因為一開始沒有挖掘漏洞而隨意放棄,這樣往往不能挖掘到深層次的漏洞。所以在真的想要花點時間在SRC漏洞挖掘上的話,建議先選好目標。0x02 確認測試范圍前面說到確定測什么SRC,那么下面就要通過一些方法,獲取這個SRC的測試范圍,以免測偏。
    對于公益SRC來說,想要沖榜就不能在一個站上浪費大量時間,公益SRC對洞的質量要求不高,所以只要 花時間,還是可以上榜的。在對某站點進行測試SQL注入的時候,先通過一些方式測試是否可能存在漏洞,然后可以直接sqlmap一把梭,也可以手工測試,然后提交漏洞。任意注冊算是低危漏洞,不過也有兩分。不管是進行SRC漏洞挖掘,還是做項目進行滲透測試,又或者是打紅藍對抗,一定要做好信息收集。
    Activity漏洞挖掘詳解
    2021-10-18 16:22:12
    2Activity漏洞初步介紹1.Activity基本介紹在學習Activity的漏洞挖掘之前,我們先對Activity的基本運行原理有一個初步的認識。
    一顆小胡椒
    暫無描述
      亚洲 欧美 自拍 唯美 另类