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)練習中識別出此漏洞。
要再現的步驟:
- 登入AEM後端,並導覽至「編輯個人資料」頁面。
- 請注意,電子郵件欄位存在使用者端驗證。
- 輸入有效的電子郵件地址,並在儲存變更時使用Burp Suite擷取請求。
- 將電子郵件引數的值修改為無效值,例如 fake。
- 轉寄修改後的請求,並觀察設定檔已成功儲存,沒有有效的電子郵件。
解決方法 resolution
AEM的輸入驗證模型預設為特意彈性。 存放庫採取寬鬆的方法,並對大多數欄位(包括電子郵件屬性)強制執行最小限制。 開箱即用的設定檔資料欄位通常沒有嚴格的驗證,視需要由應用程式或消費者決定是否強制執行內容完整性。
若要匯入強大的伺服器端輸入驗證(例如,針對電子郵件欄位),請考慮下列選項:
- 實作Sling PostProcessor介面以驗證AEM Author中標準內容更新期間Sling Post Servlet所管理的輸入。
- 針對在Sling Post Servlet外部處理設定檔更新的情況,在專用servlet中新增驗證邏輯。
這可確保所有必要欄位都根據您應用程式的需求進行驗證,同時保持其他使用案例的彈性。
相關閱讀
AEM Forms教學課程中的Sling Servlet
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f