标签: mod-security

Ubuntu'-bash:nano:找不到命令'

我正在尝试使用 Ubuntu 18.04 在 Google Cloud 上下载 ModSecurity,但是每当我尝试编写sudo nano *file*.conf或nano *file*.conf. 我收到一条错误消息,说-bash: nano: command not found或sudo: nano: command not found。我不确定是不是因为我为此使用了 Google Cloud Platform,但我只需要知道如何解决这个问题

ubuntu mod-security google-cloud-platform ubuntu-18.04

6
推荐指数
2
解决办法
2万
查看次数

Facebook链接到我的网站解析为403禁止

嗨,我遇到了一个非常奇怪的问题.
每当我在Facebook上发布我的网站链接时,他们都会被视为禁忌.
该网站本身运作良好,我在其他网站上链接时没有看到这一点.
这可能是服务器配置错误吗?关于在哪里看的任何想法?

这里有一些信息:
我有一台运行WHM 11.25.0的专用服务器
我在这里使用cPanel 11.25.0托管了2个站点

错误消息:

被禁止

您无权访问此服务器上的/ blog/deepwater-horizo​​n-11 /.

此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误.


Apache/2.2.14(Unix)mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635服务器www.offshoreinjuries.com端口80

更新:
这是一个示例链接,如果它有帮助.(通知链接页面直接工作正常)
http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.offshoreinjuries.com%2Fblog%2Fdeepwater-horizo​​n-11%2F&h=834ea

更新和答案:
找到问题并在下面添加完整的答案.

facebook mod-security http-status-code-403

5
推荐指数
2
解决办法
2万
查看次数

检测是否使用PHP安装了Mod_Security?

是否有任何简单的方法来检测是否仅使用PHP安装和启用了mod_security?理想情况下,不执行任何exec()终端类型命令.

有些人建议使用apache_get_modules(),但这个特定的Web主机不允许它显示.其他用户也提到了这一点:http://www.devcomments.com/apache_get_modules-solution-to130703.htm

php mod-security

5
推荐指数
1
解决办法
1万
查看次数

Mod安全响应/请求正文大小?

如何在Mod Security中获取响应/请求正文的大小?

我不断收到此错误,例如:

[Mon Sep 17 23:34:38 2012] [error] [client 192.168.1.1] ModSecurity: Output filter: Response body too large (over limit of 1000, total not specified). [hostname "example.com"] [uri "/index.php"] [unique_id "asdf"]
Run Code Online (Sandbox Code Playgroud)

它没有告诉我总数; 我怎么能计算总数?

mod-security

5
推荐指数
1
解决办法
9329
查看次数

配置错误页面以显示 modsecurity 的日志

我正在寻找一种方法,使规则的消息信息(已触发哪个规则)出现在错误和/或审核日志文件中,并在响应标头中发送回客户端。我知道有阶段“msg”,但它不会在响应标头中将信息发送回客户端,因此它对我没有帮助。我想以html的形式查看错误页面中的日志信息,该怎么办?谢谢你的帮助,弗拉迪。

apache mod-security

5
推荐指数
1
解决办法
2886
查看次数

如何在.htaccess中禁用mod_security和mod_security2

我已经创建了一个Wordpress插件,它变得很受欢迎,但是我收到很多抱怨它没有用.在登录到许多用户的WP网站之后(在询问管理员密码之后),我注意到我无法轻易解决的最后一个问题是mod_security和mod_security2阻止了一些AJAX请求或.htaccess导致某些配置出现500错误.

首先,为什么这段代码会导致某些服务器返回500错误

<IfModule mod_security2.c>
  SecRuleRemoveById 300015
  SecRuleRemoveById 300016
  SecRuleRemoveById 300017
  SecRuleRemoveById 950907
  SecRuleRemoveById 950005
  SecRuleRemoveById 950006
  SecRuleRemoveById 960008
  SecRuleRemoveById 960011
  SecRuleRemoveById 960904
  SecRuleRemoveById phpids-17
  SecRuleRemoveById phpids-20
  SecRuleRemoveById phpids-21
  SecRuleRemoveById phpids-30
  SecRuleRemoveById phpids-61
Run Code Online (Sandbox Code Playgroud)

在其他服务器上通过id删除规则这种方式导致500错误:

<IfModule mod_security.c>
  SecRuleRemoveById 300015
  ...
  SecRuleRemoveById phpids-61
</IfModule>
Run Code Online (Sandbox Code Playgroud)

所以现在唯一不会导致任何服务器崩溃的工作是

<IfModule mod_security.c>
  SecFilterEngine Off
  SecFilterScanPOST Off
</IfModule>
Run Code Online (Sandbox Code Playgroud)

但对于mod_security2的服务器来说还不够!

如何编写跨服务器.htaccess文件,以及我应该添加哪些IF条件以禁用mod_security和mod_security2在任何适用的位置,并且不会在其他配置上导致500错误?

编辑:不仅在Apache中.使用.htaccess的地方.

php apache ajax .htaccess mod-security

5
推荐指数
2
解决办法
1万
查看次数

如何在POST参数中使用Apache mod_rewrite rewritecond?

我知道我可以在rewritecond中检查GET查询字符串参数,如下所示:

RewriteCond %{REQUEST_URI} ^/somepath/somepath
RewriteCond %{REQUEST_METHOD} GET
RewriteCond %{QUERY_STRING} try=3
RewriteCond %{QUERY_STRING} name=([^&]*)
RewriteRule ^/somepath/somepath(.*) /otherpath/otherpath?name=%1 [R]
Run Code Online (Sandbox Code Playgroud)

如何检查请求正文中的POST参数?我听说mod_security可以做到,但我没有找到任何关于如何将mod_security与mod_rewrite一起使用的例子,如上例所示.

我打算用这样的东西来处理POST:

RewriteCond %{REQUEST_URI} ^/somepath/somepath
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^/somepath/somepath(.*) /otherpath/otherpath [PT]
Run Code Online (Sandbox Code Playgroud)

...除了我需要一个RewriteCond来检查POST参数以查看"try = 3".

modsecurity可以检查请求体并将检查结果加载到环境变量中吗?那会有用......

apache mod-rewrite mod-security

5
推荐指数
1
解决办法
7858
查看次数

mod_security阻止MVC4中的数据绑定

经过很长时间处理2.9.0后,我成功安装了mod_security 2.7.5.

但现在,我遇到了一个问题.我创建了一个MVC项目并将其部署到安装了mod_security的IIS服务器上.我用MVC 4创建了一个简单的登录页面,当我按下登录时,用户名和密码不会发送到我的服务器.这就是我的登录功能失败的原因.发送POST数据,但不会发生模型绑定.

这是我的C#项目

有人可以帮我吗?这不是因为规则,因为我使用的是mod_security 2.7.5的基本规则,并且在事件查看器中没有记录与规则相关的错误.

  • mod_security:2.7.5
  • IIS:8.0
  • MVC 4
  • Windows 7的

这是我的项目:https://www.dropbox.com/s/a196c2qgyruc20f/MVC4_ModSecurity.rar?dl = 0

谢谢.

iis mod-security mod-security2 asp.net-mvc-4 iis-8

5
推荐指数
0
解决办法
144
查看次数

为什么 ModSecurity OWASP 规则会阻止 .axd 文件?

我一直在研究 ASP.NET 应用程序中的 WAF 结果。WAF 是带有 OWASP CRS 的 ModSecurity。其中一项调查结果是:

URL 文件扩展名受到策略规则 ID 920440 的限制,
并且它在文件 WebResource.axd 和 ScriptResource.axd 上触发。

我做了一些研究。我发现这些文件是 HTTP 处理程序,并且嵌入在程序集中。我发现了上述规则 - 这是一个简单的规则,它只是检查文件扩展名并据此阻止请求。.axd 恰好是列出的文件扩展名之一。

据我了解,这些文件可能与使用 AJAX 相关(我在这一点上可能是错的)。然而,我没有在互联网上找到任何原因/解释为什么这些被 OWASP 列入黑名单。唯一可能提供线索的信息就是这个问题。

为什么 .axd 文件被列入黑名单?它们已被弃用吗?这些是否可以列为规则的例外,或者可能会带来一些实际风险?最后,如何修改 ASP.NET 应用程序使其不需要这些文件?

asp.net mod-security

5
推荐指数
1
解决办法
1646
查看次数

ModSecurity(仅检测模式)没有提供有用的日志/警告

我已经在 Kubernetes Nginx 控制器上配置了 modsecurity-nginx 连接器。

\n

目前,我使用 ModSecurity WAF 的目标是在DetectionOnly模式下实施,因为我不想立即开始阻止所有内容。因此,为了实现这一点,我在控制器 ConfigMap 中使用了以下配置。

\n
enable-modsecurity: "true"\n  modsecurity-snippet: |\n    SecRuleEngine DetectionOnly\n    SecAuditEngine On\n    SecAuditLogParts ABIJDEFHZ\n    SecAuditLogFormat JSON\n    SecAuditLogType Serial\n    SecAuditLog /dev/stdout\n
Run Code Online (Sandbox Code Playgroud)\n

为了测试这一点,我尝试了 SQL 注入攻击,将 SQL 查询从客户端插入到我的测试应用程序中。但 ModSecurity 没有在日志中给出任何警告或任何有用的信息来表明 SQL 查询已插入到应用程序中。以下是我分别发送和获取日志的请求:

\n
$ curl -ks -o /dev/null -w \xe2\x80\x98%{http_code}\xe2\x80\x99 \xe2\x80\x9chttps://test-ingress-nginx.example.com/foo?username=1'%20or%20'1'%20=%20'\xe2\x80\x9d\n
Run Code Online (Sandbox Code Playgroud)\n

输出:404

\n
Logs :\n----    \n{\xe2\x80\x9ctransaction\xe2\x80\x9d:{\xe2\x80\x9cclient_ip\xe2\x80\x9d:\xe2\x80\x9c192.xxx.xxx.xx",\xe2\x80\x9ctime_stamp\xe2\x80\x9d:\xe2\x80\x9cTue Feb 16 07:44:10 2021",\xe2\x80\x9cserver_id\xe2\x80\x9d:\xe2\x80\x9c995f188ad543e6fcbcdbfb4c7a2c67327xxxxx",\xe2\x80\x9cclient_port\xe2\x80\x9d:59455,\xe2\x80\x9chost_ip\xe2\x80\x9d:\xe2\x80\x9c10.x.xxx.xxx\xe2\x80\x9d,\xe2\x80\x9chost_port\xe2\x80\x9d:443,\xe2\x80\x9cunique_id\xe2\x80\x9d:\xe2\x80\x9c161346145098.924xxx",\xe2\x80\x9crequest\xe2\x80\x9d:{\xe2\x80\x9cmethod\xe2\x80\x9d:\xe2\x80\x9cGET\xe2\x80\x9d,\xe2\x80\x9chttp_version\xe2\x80\x9d:2.0,\xe2\x80\x9curi\xe2\x80\x9d:\xe2\x80\x9c/foo?username=1'%20or%20'1'%20=%20'\xe2\x80\x9c,\xe2\x80\x9dheaders\xe2\x80\x9d:{\xe2\x80\x9chost\xe2\x80\x9d:\xe2\x80\x9ctest-ingress-nginx.example.com\xe2\x80\x9d,\xe2\x80\x9cuser-agent\xe2\x80\x9d:\xe2\x80\x9ccurl/7.64.1",\xe2\x80\x9caccept\xe2\x80\x9d:\xe2\x80\x9c*/*\xe2\x80\x9c}},\xe2\x80\x9cresponse\xe2\x80\x9d:{\xe2\x80\x9cbody\xe2\x80\x9d:\xe2\x80\x9c<!DOCTYPE HTML PUBLIC \\\xe2\x80\x9c-//IETF//DTD HTML 2.0//EN\\\xe2\x80\x9c>\\n<html><head>\\n<title>404 Not Found</title>\\n</head><body>\\n<h1>Not Found</h1>\\n<p>The requested URL /foo was not found on this server.</p>\\n<hr>\\n<address>Apache/2.4.25 (Debian) Server …
Run Code Online (Sandbox Code Playgroud)

mod-security nginx-ingress

5
推荐指数
1
解决办法
1945
查看次数