<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>

    挖未授權、越權類漏洞的探究

    VSole2022-12-06 16:24:22

    市面上很多注入、XSS等漏洞的挖掘文章,但是權限類漏洞講的比較少。并且在最近項目上發現的越權,未授權類的漏洞比較多,就想著寫這么一篇文章,也是總結一下自己最近的學習心得。

    文章開頭也希望大家看看OWASP TOP10漏洞的變化,剛開始我覺得沒什么,注入也只是變成了第三。

    然后實際過程中發現,注入漏洞真的變少了,或者不容易發現了,更多關注的,便是訪問控制類的漏洞。

    未授權訪問漏洞


    概念

    首先理解什么是未授權漏洞

    未授權字面上理解是未獲得授權,對于正常的業務來說,有些功能點需要經過登錄之后才能進行,那么如果我們通過一些繞過,無需登錄也可以完成此類操作,那么便是未授權訪問漏洞了。

    常見的未授權訪問漏洞

    常見的未授權漏洞一般分為兩種:

    1、組件類的,如redis未授權、mongodb未授權等,也是比較常見的。對于此類漏洞,可以理解為不需要登錄即可執行里面的功能,所以存在未授權漏洞。

    2、WEB層面的,如某某CMS未授權文件上傳、未授權創建賬號等。

    因為可以繞過登錄限制進行操作,所以存在未授權訪問漏洞。

    本文旨在探究WEB層面的未授權訪問漏洞,暫不涉及組件類漏洞,感興趣的可以參考格格巫 MMQ!!師傅的文章:https://blog.csdn.net/weixin_43214644/article/details/124348759

    Cookie

    由于 HTTP 是無狀態的協議,不能保存每一次請求的狀態,所以需要給客戶端增加 Cookie 來保存客戶端的狀態。

    在一些xss的文章中也常常會講到Cookie的概念。以防有師傅不理解,這里簡單講一下。

    Cookie,是某些網站為了辨別用戶身份,進行Session跟蹤而儲存在用戶本地終端上的數據(通常經過加密),由用戶客戶端計算機暫時或永久保存的信息。簡單來說,Cookie就是一個加密了的字符串,用來分辨用戶身份的,有點像放在保險箱中的身份證

    當然不僅僅只能通過cookie,還有auth,jwt等認證方式。

    大體方向是一樣的,都是為了辨別用戶身份。

    如何挖掘此類漏洞

    理解了什么是cookie之后,我們一起模擬一個場景:

    用戶A是某網站的管理員,他今天的任務是修改一個賬號的信息。

    首先,A打開網站后臺登錄界面,輸入賬號密碼后登錄系統,在系統后臺界面點擊用戶管理功能,在管理功能中找到并點擊修改按鈕,在修改界面進行了修改賬號信息的操作,點擊完成。

    思考:

    1、在登錄后,A至少點擊了幾個功能?

    2、點擊后臺功能的時候,系統是怎么知道A是否登錄的?

    第一個問題,訪問用戶管理是一個,點擊修改按鈕是一個,點擊修改完成按鈕是一個。至少有3個,可能細節沒有描述好,還會有更多。

    進入到第二個問題,我想應該很多人已經知道了,就是Cookie,或者說是認證因子。考慮用戶的體驗性,不可能進行一步操作便輸入一次賬號密碼的,當然,這是最安全的。

    挖掘方式很簡單,既然系統通過檢測Cookie等認證因子進行判斷是否登錄,那么只需要將認證因子刪除,分析刪除前后返回包的變化即可判斷。

    這樣一想,對于使用Burp測試來說,只需要將數據包中的Cookie等字段值置空或者修改為無用字符,再查看前后的數據包是否相同即可。

    有那么一個插件可以幫助快速挖掘此類漏洞。

    項目地址https://github.com/theLSA/burp-unauth-checker

    burp本身的抓包模塊也有個功能可以進行替換,將授權類參數替換即可,不過好像不太好用,這是直接修改數據包內容而不是重放操作,影響體驗。如圖新增了一個規則,將匹配到Match的替換成Replace的內容。

    代碼層面分析

    代碼層面以某OA系統為例,通過auth.inc.php文件進行鑒權,在需要鑒權的文件中包含auth.inc.php,即可達到鑒權的效果。

    例如某個備份數據庫操作,便在最前面包含了auth.inc.php文件進行鑒權。

    auth.inc.php文件中可以看到進行了校驗

    越權訪問漏洞

    概念

    使用用戶A的權限去操作用戶B的數據,如果能夠成功操作,則稱之為越權操作。

    如果A、B的權限相同,或者說是在同一水平層面的,那么我們稱此操作為水平越權。如果A的權限小于B的權限,那么我們稱此操作為垂直越權。

    如何挖掘此類漏洞

    如果問我近幾個月的滲透測試項目什么漏洞比較多,我應該會說越權漏洞。

    在理解了越權漏洞之后,發現這類問題真的特別多,并且挖掘難度沒有特別大。

    首先我將挖掘越權類漏洞分為兩大類:

    1、未使用cookie鑒權,通過修改userid等字段進行越權。

    2、使用cookie鑒權,未檢測對應操作是否符合當前權限預期。

    (下面通過某CMS模擬漏洞環境,并非實際存在越權類漏洞。)

    未使用cookie鑒權

    要挖掘越權類漏洞,不能局限于1、2個功能點。首先需要在大體方向上判斷,整個系統的功能點,有沒有通過userid等參數值進行校驗的。

    常見方式便是通過全局搜索userid、id、countid等字符,通過修改對應id值進行判斷。

    例如此處獲取用戶數據功能,如果未檢測用戶id是否與cookie對應。

    那么便可以通過枚舉用戶id,獲取其他用戶數據。

    或者在某個獲取驗證碼功能,通過修改user字段值,偽造代替其他用戶獲取驗證碼進行越權操作。

    使用cookie鑒權

    第一種、擁有兩個賬號密碼的情況下,使用管理員賬號操作,抓取數據包,修改cookie為普通用戶的cookie

    第二種、只有普通賬號的情況下,通過js文件發現接口,通過自主訪問接口,fuzz字段值進行越權測試

    擁有兩個賬號密碼

    1、登錄管理員用戶,獲取以下cookie

    PHPSESSID=lm5n7it0hinhbnqa3fp4v263i3
    

    2、登錄普通用戶,獲取以下cookie

    PHPSESSID=9sa9vq9ng9n7b9hodjrkel5qg7
    

    3、使用管理員進行添加用戶操作并抓取數據包

    4、將數據包發送到重放模塊,替換cookie為普通用戶cookie。

    如果依舊可以正常執行,那么即表示存在越權漏洞。

    當然也可以使用burp替換的方式進行

    只有普通賬號

    這種情況下測試越權比較麻煩,但是更加適用于沒有賬號然后通過暴力破解獲取了一個低權限賬號的情況下,一般會先通過js文件、swagger等獲取存在的接口,然后訪問接口查看是否能直接獲取信息。如果能夠獲取信息那么刪除認證因子看看是否能夠未授權。

    如果直接訪問提示錯誤,并且沒有辦法fuzz到具體的參數的話,一般就無法利用了。但是有些情況下,會提示缺少什么參數,或者什么參數不能為空。

    這就可以構造出具體的請求包進行測試了,如果能夠進行操作,比如獲取某用戶信息,修改某用戶數據,那么便是存在越權漏洞。

    使用普通賬號登錄后的Cookie,構造更新數據的數據包,成功執行更新操作,即存在越權漏洞。

    當提示無權限或者其他錯誤信息,即不存在越權漏洞。

    總結

    權限問題最近發現了特別多,一開始挖掘替換cookie實現的越權,感覺好像沒什么危害,但是當只有普通用戶的情況下,通過js文件翻到了許多接口

    再結合一些數據包中的參數,fuzz之后成功構造了數據包,越權實現了許多高危操作后,我發現越權漏洞確實應該重視。

    那么怎么修復此類漏洞呢?

    其實只要在每個操作前面做兩個步驟:

    1、檢測cookie是否已登錄。

    2、如果該功能屬于管理員才能操作的功能,檢測cookie中的用戶是否屬于管理員組。

    聲明:?中所涉及的技術、思路和?具僅供以安全為?的的學習交流使?,任何?不得將其?于?法?途以及盈利等?的,否則后果??承擔。所有滲透都需獲取授權

    漏洞挖掘cookie
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    挖掘方式很簡單,既然系統通過檢測Cookie等認證因子進行判斷是否登錄,那么只需要將認證因子刪除,分析刪除前后返回包的變化即可判斷。)未使用cookie鑒權要挖掘越權類漏洞,不能局限于1、2個功能點。常見方式便是通過全局搜索userid、id、countid等字符,通過修改對應id值進行判斷。
    漏洞挖掘是指對應用程序中未知漏洞的探索,通過綜合應用各種技術和工具,盡可能地找出其中的潛在漏洞cookie的key為RememberMe,并對相關信息進行序列化,先使用aes加密,然后再使用base64編碼處理形成的。在網上關于Shiro反序列化的介紹很多,我這里就只簡單介紹一下,詳情各位可以看下大神們對其源碼的分析。
    我發現了一個存儲的XSS漏洞,我可以通過竊取cookie升級為帳戶接管。我的payload目前需要最少的用戶交互,只需單擊即可。之后,向下滾動并單擊取消預約。確保您攔截了此請求。使用以下有效載荷添加消息:">
    這里建議doc文檔,圖片可以貼的詳細一些。爆破完好了,一樣的6。想給它一個清晰完整的定義其實是非常困難的。
    一、漏洞挖掘的前期–信息收集 雖然是前期,但是卻是我認為最重要的一部分; 很多人挖洞的時候說不知道如何入手,其實挖洞就是信息收集+常規owasp top 10+邏輯漏洞(重要的可能就是思路猥瑣一點),這些漏洞的測試方法本身不是特別復雜,一般混跡在安全圈子的人都能復現漏洞。接下來我就著重說一下我在信息收集方面的心得。
    跨站腳本英文全稱(Cross Site Scripting跨站腳本),為了不和css層疊樣式表(英文全稱:Cascading Style Sheets)混淆,因此將跨站腳本縮寫為XSS。本期我們講解一下XSS漏洞原理和利用檢測。
    src漏洞挖掘淺談
    2023-02-20 11:22:13
    信息收集就說到這里,信息收集的主要目的就是擴大可利用面,10000萬個資產你可能碰到弱口令,但1個資產你肯定沒有弱口令挖掘前篇前邊已經講了信息收集,在測試前為了能高效的挖掘src,就需要有數據進行測試,這個數據就是我們常說的字典,字典怎么來,整理,收集,經驗,積累。金額,數量都是可以篡改的地方小結挖掘src漏洞最主要還是挖掘邏輯漏洞,無非就是耐心,細節,多留意數據包的可疑數據,數據包所實現的功能。
    1.設想一種場景,一個惡意網站上嵌入了一個iframe標簽去加載銀行的登陸頁面,高度和寬度的設置和真實的銀行官網一樣,當用戶訪問惡意網站并登錄時,攻擊者就可以利用惡意腳本通過XMLHttpRequest之類的dom操作竊取用戶的銀行卡數據,為了防止防御此類攻擊,同源策略誕生了!
    1.設想一種場景,一個惡意網站上嵌入了一個iframe標簽去加載銀行的登陸頁面,高度和寬度的設置和真實的銀行官網一樣,當用戶訪問惡意網站并登錄時,攻擊者就可以利用惡意腳本通過XMLHttpRequest之類的dom操作竊取用戶的銀行卡數據,為了防止防御此類攻擊,同源策略誕生了!
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类