AEM配置文件更新中的服务器端验证不足

在Adobe Experience Manager (AEM)中,创作CMS允许通过触屏UI更新配置文件,而无需实施强大的服务器端验证。 问题源于AEM的默认允许验证模型,该模型不对用户档案字段执行严格检查。 要解决此问题,请使用Sling PostProcessor或自定义servlet逻辑实施服务器端验证。

描述 description

环境

Adobe Experience Manager (AEM),v6.5

问题/症状

  • 在漏洞评估和渗透测试(VAPT)期间发现服务器端验证不足。 症状包括:

    • 在通过Touch 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