【问题标题】:AWS WAF Getting 403 forbidden error while trying to upload an imageAWS WAF 在尝试上传图像时出现 403 禁止错误
【发布时间】:2021-02-27 08:42:10
【问题描述】:

我们在我的 ALB 之前启用了 AWS WAF 解决方案,并启用了 SQL 注入和 XSS 检测。我们已尝试设置自定义规则以使用正则表达式检查内容类型是否为 multipart/form-data*。

我们已将该自定义规则设置为更高的优先级。使用自定义规则时,图像被上传,但脚本标签不被禁止。如果我们尝试上传图片,如果没有自定义规则,则仅一张特定的图片不会被上传并抛出 403 禁止。

关于添加 XSS 和自定义规则以允许图片上传的任何提示?

【问题讨论】:

    标签: amazon-web-services xss amazon-waf


    【解决方案1】:

    检查您的图像元数据。我最近遇到了这个问题,并且在 ACL 日志中收到“GenericRFI_BODY”错误。事实证明,我上传的测试图像的 exif 数据中有一条非法路径。在某个元数据字段中有一个 URL 指向图像来自的站点,并且该 URL 中的“://”模式触发了该规则。从图像中剥离元数据允许它上传。

    我强烈反对使用 base64 编码来规避防火墙规则。这会增加文件的大小,并且 multipart/form-data 的存在专门用于从客户端到服务器来回传输大型二进制文件 - 而不是发布大量序列化文本块。

    这是 RFC:https://www.ietf.org/rfc/rfc2388.txt

    【讨论】:

      【解决方案2】:

      转到您的 Web ACL 并单击编辑 AWS-AWSManagedRulesCommonRuleSet 并将 Override rules action 设置为 True 以用于规则 SizeRestrictions_BODY强>

      【讨论】:

      • 这种方法肯定不能解决问题。这是 WAF 所做的绕过检查。
      【解决方案3】:

      当我尝试将图像添加为 multipart/form-data 时,我在 AWS 防火墙中遇到了 403 问题。

      阻止图像上传的一些 WAF 规则是 AWS#AWSManagedRulesSQLiRuleSet#GenericRFI_BODY、AWS#AWSManagedRulesSQLiRuleSet#SQLi_BODY 和 AWS#AWSManagedRulesCommonRuleSet#CrossSiteScripting_BODY。

      我通过将图像上传为 base64 字符串而不是作为 multipart/form-data 上传解决了这个问题。

      【讨论】:

      • 我在通过 PHP 表单提交将图像上传到 s3 时遇到了同样的问题。我正在使用 AWS docs.aws.amazon.com/solutions/latest/… 提供的默认 WAF 规则脚本。让我和开发者确认一下图片上传加密的问题。
      • 这是一个非常好的方法。但是你会在 WAF 上遇到同一套规则的 SizeBody 问题。
      猜你喜欢
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-25
      • 2017-02-11
      • 2020-02-17
      • 2013-03-02
      • 1970-01-01
      相关资源
      最近更新 更多