使用单引号的文件名在将图像或文件上传到制作

时间:2016-11-29 08:15:27

标签: php jquery linux server mod-security

在我们的制作中使用单引号上传图像或文件时抛出500内部服务器错误,但在我们的localhost和QA实例中,相同的代码工作正常。

我们已经看到了日志文件(ssl_error_log)并发现了以下错误

  

[Fri Nov 25 05:41:56.926603 2016] [:error] [pid 29449] [client 183.82.3.44] ModSecurity:拒绝访问代码44(阶段2)。匹配" eq 0"反对" MULTIPART_STRICT_ERROR"需要。 [file" /etc/httpd/conf.d/mod_security.conf"] [line" 31"] [id" 200002"] [msg"多部分请求体未通过严格验证:PE 0,BQ 0,BW 0,DB 0,DA 0,HF 0,LF 0,SM 0,IQ 1,IP 0,IH 0,FL 0"] [主机名&# 34; www.gatewaychamber.com"] [uri" / edit-profile /"] [unique_id" WDgVc7JgaWA0yezMJ2n @TAAAAAc"]

我们在this url找到了解决方案,方法是在我的httpd配置文件中禁用规则200002:

SecRuleRemoveById 200002

但是我们没有尝试过这个,因为我们想在服务器中禁用此功能后知道任何安全问题或逃避攻击。请提供任何解决方案或建议来解决此问题。此外,如果我们停用此规则,任何人都可以解释任何安全问题SecRuleRemoveById 200002modsecurity.conf档案中。

如果应该禁用它来解决问题,请建议更好的方法来禁用此规则。或者,我们可以使用jQuery修改前端的文件名吗?

我已经看到LinkedIn和Facebook以及其他一些网站在上传时接受单引号,没有任何问题或重命名文件/图像。这怎么可能?

提前致谢。

1 个答案:

答案 0 :(得分:0)

基于此link的信息,有一种方法可以绕过ModSecurity并潜入一些恶意的PHP代码。

最高2.6.8的ModSecurity存在此漏洞,并且应该具有规则200002。如果可以将您的ModSecurity版本升级到至少2.7.0,则不再需要该规则。 ModSecurity的当前版本是2.9.1。