AEM設定檔更新中的伺服器端驗證不足

在Adobe Experience Manager (AEM)中,Author CMS可透過Touch UI更新設定檔,不會強制執行強大的伺服器端驗證。 此問題源自AEM的預設允許驗證模型,該模型不對設定檔欄位強制進行嚴格檢查。 若要解決此問題,請使用Sling PostProcessor或自訂servlet邏輯實作伺服器端驗證。

說明 description

環境

Adobe Experience Manager (AEM),v6.5

問題/症狀

  • 在弱點評估和滲透測試(VAPT)期間識別出伺服器端驗證不足。 症狀包括:

    • 在透過觸控式UI更新設定檔期間,AEM作者CMS接受無效的電子郵件輸入。
    • 使用者端驗證存在,但缺少伺服器端檢查,因此允許具有無效資料的修改請求更新設定檔欄位。
  • 在漏洞評估和滲透測試(VAPT)練習中識別出此漏洞。

要再現的步驟:

  1. 登入AEM後端,並導覽至「編輯個人資料」頁面。
  2. 請注意,電子郵件欄位存在使用者端驗證。
  3. 輸入有效的電子郵件地址,並在儲存變更時使用Burp Suite擷取請求。
  4. 將電子郵件引數的值修改為無效值,例如​ fake
  5. 轉寄修改後的請求,並觀察設定檔已成功儲存,沒有有效的電子郵件。

解決方法 resolution

AEM的輸入驗證模型預設為特意彈性。 存放庫採取寬鬆的方法,並對大多數欄位(包括電子郵件屬性)強制執行最小限制。 開箱即用的設定檔資料欄位通常沒有嚴格的驗證,視需要由應用程式或消費者決定是否強制執行內容完整性。

若要匯入強大的伺服器端輸入驗證(例如,針對電子郵件欄位),請考慮下列選項:

  1. 實作Sling PostProcessor介面以驗證AEM Author中標準內容更新期間Sling Post Servlet所管理的輸入。
  2. 針對在Sling Post Servlet外部處理設定檔更新的情況,在專用servlet中新增驗證邏輯。

這可確保所有必要欄位都根據您應用程式的需求進行驗證,同時保持其他使用案例的彈性。

相關閱讀

AEM Forms教學課程中的Sling Servlet

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f