问题标签 [mod-security2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1735 浏览

apache - 匹配多个事物的复杂 SecRule

我是使用 mod_security2 的新手。我只使用了大约 3 周。

希望有人能告诉我如何完成以下工作。我正在寻找一种创建规则的方法:

  1. 如果是url,域名后面以/SOMETHING
  2. 并且参数名称(包含任何地方datetimestamp)或(恰好是lastLogon
  3. 并且参数值与正则表达式匹配^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}\.[0-9]{3}[-+]?[0-9]{4}$
  4. 或者参数名称正是“过滤器”(无论它具有什么值)
  5. 然后执行 ctl:ruleRemoveTargetById=981173

我认为参考手册缺少的是 SecRule 的解释复杂示例。也许我只是找不到它,在这种情况下,请原谅我并指出正确的方向。

我正在使用版本 2.9.0

也许使用或类似的东西?无法使其工作(因为需要 boolean or)。我不知道。

由于我已经在写这个寻求帮助的请求,也许有一个捷径很容易知道:如果域名后的 url 以 开头,我有很多规则要写,/SOMETHING有没有简单的方法来处理它们?

提前致谢。

0 投票
1 回答
1805 浏览

regex - 当参数不符合正则表达式时阻止请求的 Modsecurity 规则

我正在尝试创建当参数不符合某个正则表达式时需要阻止请求的 modsecurity 规则。
让我们以电子邮件正则表达式为例:(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)
对于参数:
页面的电子邮件位置(需要包含在规则中):/signup.php
我尝试了什么(但我认为根本不正确):

因此,如果有人发布如下获取请求:“/signup.php?email=alert...”,它将被阻止。

0 投票
1 回答
454 浏览

mod-security - Mod安全规则问题

我已经成功实施了 Modsecurity 防火墙。

但是我的团队面临一个与 Sql Injection & Xss 的防火墙规则相关的问题。

问题是。每当用户添加带有特殊字符的普通信息时,规则就可以执行并显示错误 403 禁止的页面。并且在 Apache 错误日志中得到了各种行号,即规则行。我评论了每条规则,例如规则号 (309,508) in modsecurity_crs_41_xss_attack.conf& (223,233,243,237,211,239,49,136) in modsecurity_crs_41_sql_injeciton.conf

这是给我假阳性结果。

测试场景是

输入文本

仅剩8个席位!现在注册!

课程费用包括课程材料、实践培训、工作午餐、早餐、晚茶。

** 应事先要求提供免费住宿

如需住宿,请联系我们:+91 12345 67890 ====================================== ============ apache中的错误日志

Sahil:[Wed Mar 16 10:29:57.316380 2016] [:error] [pid 25001]ModSecurity:使用代码 403 拒绝访问(阶段 2)。模式匹配 "(?i:[\"\\'][ ](([^a-z0-9~_:\\' ])|(in)).+?\\(.?\\)) " 在 ARGS_NAMES:redirect:${#res=#context.get('com.opensymphony.xwork2.dispatcher.HttpServletResponse'),#res.setCharacterEncoding("UTF-8"),#req=#context.get(' com.opensymphony.xwork2.dispatcher.HttpServletRequest'),#res.getWriter().print("dir:"),#res.getWriter().println(#req.getSession().getServletContext().getRealPath(" /")),#res.getWriter().flush(),#res.getWriter().close()}。[文件“/usr/share/modsecurity-crs/activated_rules/modsecurity_crs_41_xss_attacks.conf”][行“ 506"] [id "973335"] [rev "2"] [msg "IE XSS 过滤器 - 检测到攻击。"

所以请您指导一下这个问题...

0 投票
1 回答
82 浏览

regex - 如何“跟踪” modsecurity 日志文件直到某个时间戳?

我有一个 modsecurity 日志文件,我想在其中获取最后一个事件,直到某个时间戳。简要介绍如何组装 modsecurity 日志文件:例如,1 个事件显示如下:

一个完整的例子可以在这里找到http://pastebin.com/M1iqnY6L

我正在考虑将tail和grep结合起来。

  1. grep 查找时间戳的行(让我们将此行称为timestampLine
  2. tailLines = (文件中的总行数) - ( timestampLine + 1)
    //+ 1 因为请求的第一行带有--id-A--时间戳,第二行带有时间戳
  3. tail -n $ tailLines logfile.log

有没有更好的办法?如果没有,我如何 grep 这个时间戳并从步骤 1 中获取行号?

0 投票
1 回答
81 浏览

reverse-proxy - 在反向代理 mod_security 上创建规则

我在我的系统上使用 mod_security 建立了反向代理

在指定网站上写规则时遇到问题

例如我有 2 个网站 a.com 和 b.com,它们都有参数 username

如果我想拒绝该参数的值 abc,我的规则将是:

但我只想在 a.com 上拒绝参数用户名的值 abc,而不是 b.com

我应该怎么办?

预先感谢 :)

0 投票
1 回答
2881 浏览

mod-security2 - 如何在一分钟内特定时间后使用 mod_security 阻止特定 IP 地址

好吧,通常我不是打算这样做的人,我是一名 PHP 开发人员,并且对 Apache 和安全管理有一般知识,但我现在只能在紧急情况下这样做。

我处于需要编写 Mod_Security 规则的情况:

我可以通过编写 mod_security 规则来实现吗?

0 投票
2 回答
655 浏览

security - ModSecurity WAF RESPONSE_BODY 注意工作

我是 Web 应用程序防火墙的新手,我正试图让 modsecurity 工作。

我测试了一些配置,这是我到目前为止所得到的。

我只是无法获得带有脚本标签的响应正文被阻止。

0 投票
1 回答
485 浏览

security - Modsecurity 在 Windows Server 2008 R2 上无法正常工作

我安装了 modsecurity 版本 2.9.1 64 位,但出现错误

收到此错误后,我安装了 Visual Studio 2013 和 Microsoft Visual C++ 2012 x86 和 x64。我没有安装其他任何东西。我仍然得到错误。我该如何解决?

谢谢你的回答

0 投票
1 回答
6445 浏览

owasp - Modsecurity - “主机标头是数字 IP 地址”错误的重定向循环

看起来有一个 ModSecurity OWASP 规则,当它检测到有人通过 IP 地址而不是 DNS 名称访问您的站点时,它不会以 4xx 错误拒绝,而是简单地重定向回“主页”。问题是它正在重定向回 IP 地址,这会导致再次触发相同的错误,并且您会得到一个重定向循环。

有没有办法指定对特定规则采取什么行动?

规则如下..而且我没有看到任何重定向选项,甚至没有看到任何指定特定错误的选项。

和错误日志...

  1. ModSecurity 如何决定采取何种行动?
  2. 我如何告诉 ModSecurity 停止针对此错误的重定向循环?
0 投票
1 回答
806 浏览

magento - Magento 2 无法保存类别描述 - modsecurity SQL 注入规则

我正在做一个 Magento 2 项目,并且在保存类别描述时遇到了麻烦。

在目录保存控制器操作(Magento\Catalog\Controller\Adminhtml\Category\Save)中,我正在记录请求参数:

$this->getRequest()->getParams()

在大多数类别中,所有请求参数都会通过,但某些类别会完全忽略POST参数。

在玩弄了要发布的描述值之后,我注意到当我的文本有一个文本select的实例后跟一个from的实例时,请求不会通过。

我的文字是这样的:

“我们提供缎面到镜面的精选刀具”

我检查了 modsecurity 日志。它过滤了请求,将它们误认为是 SQL 注入。