【白帽故事】我的第一枚AEM漏洞
背景介紹:
今天的漏洞故事來自國外一位名叫Vedant的白帽子,他在推特上的昵稱叫“Vegeta”(貝吉塔) ,話不多說,進入今天的正題:
背景介紹:
首先什么是AEM,AEM的全稱是“Adobe Experience Manager”,AEM是一個全面的內容管理解決方案,用于構建網站、移動應用程序和表單,同時它還可以輕松管理您的營銷內容和資產,通俗的講AEM其實也算是一個CMS,就像Wordpress和Drupal一樣。
然后是Querybuilder Servlet,“AEM Query Builder是由Adobe公司開發的一個框架,用于為查詢引擎(OAK查詢引擎)構建易于組合的查詢(底層為JCR XPath),查詢方式為鍵值形式”。如果你有興趣了解更多關于它的信息,可訪問以下網址:
https://experienceleague.adobe.com/docs/experience-manager-64/developing/platform/query-builder/querybuilder-api.html?lang=en
另外,Dispatcher是AEM的緩存/負載平衡工具,使用AEM的Dispathcer有助于保護AEM服務器免受攻擊,你可以把AEM Dispatcher想象成WAF。
漏洞:
今年的7月份,這位白帽小哥在Hackerone平臺上的漏洞很多都撞了洞,因此小哥有些喪,但是每當他在尋找漏洞時感到灰心喪氣時,他就會想起一句名言,“If your life just got harder, you’ve just leveled up!”,于是他決定學習一些新的漏洞類型,在一番搜索后,他發現了Mikhail Egorov一個演講,演講中談及了AEM相關的漏洞,這顯然對白帽小哥來說是全新的知識,于是他開始閱讀所有關于AEM相關漏洞的文章。
在對AEM有了一些基本了解后,他開始決定對目前學到的知識加以利用,首先他選定了一個目標開始漏洞挖掘,之前他對該目標已經完成了信息收集,雖然當時并未找到任何漏洞,但這次的結果卻截然不同。
他使用wappalyzer插件逐個檢查了每個子域,不久他發現了一個子域正是使用了AEM,于是他開始尋找Querybuilder Servlet,攻擊者可以利用它讀取系統目錄。
其中有個站點總是返回404錯誤,但白帽小哥通過不斷的Fuzz嘗試繞過:

正如上圖中所看到的,我們可以使用/a.css、/a.png等來迷惑Dispatcher,從而讓我們能夠訪問到Querybuilder Servlet,所以在嘗試了類似的Payload后,終于其中一個成功了!最終的Payload是這樣的:
' /bin/querybuilder.json.;%0aa.css?path=/etc&p.hits=full&p.limit=-1'
通過該Payload,可以成功讀取/etc、 /home、 /content等系統目錄,于是他很快報告了這個漏洞,2天后漏洞被接受,一周后他獲得了一筆漏洞賞金。
