问题标签 [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.
apache - 匹配多个事物的复杂 SecRule
我是使用 mod_security2 的新手。我只使用了大约 3 周。
希望有人能告诉我如何完成以下工作。我正在寻找一种创建规则的方法:
- 如果是url,域名后面以
/SOMETHING
- 并且参数名称(包含任何地方
date
或timestamp
)或(恰好是lastLogon
) - 并且参数值与正则表达式匹配
^[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}$
- 或者参数名称正是“过滤器”(无论它具有什么值)
- 然后执行 ctl:ruleRemoveTargetById=981173
我认为参考手册缺少的是 SecRule 的解释复杂示例。也许我只是找不到它,在这种情况下,请原谅我并指出正确的方向。
我正在使用版本 2.9.0
也许使用链或类似的东西?无法使其工作(因为需要 boolean or
)。我不知道。
由于我已经在写这个寻求帮助的请求,也许有一个捷径很容易知道:如果域名后的 url 以 开头,我有很多规则要写,/SOMETHING
有没有简单的方法来处理它们?
提前致谢。
regex - 当参数不符合正则表达式时阻止请求的 Modsecurity 规则
我正在尝试创建当参数不符合某个正则表达式时需要阻止请求的 modsecurity 规则。
让我们以电子邮件正则表达式为例:(^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$)
对于参数:
页面的电子邮件位置(需要包含在规则中):/signup.php
我尝试了什么(但我认为根本不正确):
因此,如果有人发布如下获取请求:“/signup.php?email=alert...”,它将被阻止。
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 过滤器 - 检测到攻击。"
所以请您指导一下这个问题...
regex - 如何“跟踪” modsecurity 日志文件直到某个时间戳?
我有一个 modsecurity 日志文件,我想在其中获取最后一个事件,直到某个时间戳。简要介绍如何组装 modsecurity 日志文件:例如,1 个事件显示如下:
一个完整的例子可以在这里找到http://pastebin.com/M1iqnY6L
我正在考虑将tail和grep结合起来。
- grep 查找时间戳的行(让我们将此行称为timestampLine)
- tailLines = (文件中的总行数) - ( timestampLine + 1)
//+ 1 因为请求的第一行带有--id-A--
时间戳,第二行带有时间戳 - tail -n $ tailLines logfile.log
有没有更好的办法?如果没有,我如何 grep 这个时间戳并从步骤 1 中获取行号?
reverse-proxy - 在反向代理 mod_security 上创建规则
我在我的系统上使用 mod_security 建立了反向代理
在指定网站上写规则时遇到问题
例如我有 2 个网站 a.com 和 b.com,它们都有参数 username
如果我想拒绝该参数的值 abc,我的规则将是:
但我只想在 a.com 上拒绝参数用户名的值 abc,而不是 b.com
我应该怎么办?
预先感谢 :)
mod-security2 - 如何在一分钟内特定时间后使用 mod_security 阻止特定 IP 地址
好吧,通常我不是打算这样做的人,我是一名 PHP 开发人员,并且对 Apache 和安全管理有一般知识,但我现在只能在紧急情况下这样做。
我处于需要编写 Mod_Security 规则的情况:
我可以通过编写 mod_security 规则来实现吗?
security - ModSecurity WAF RESPONSE_BODY 注意工作
我是 Web 应用程序防火墙的新手,我正试图让 modsecurity 工作。
我测试了一些配置,这是我到目前为止所得到的。
我只是无法获得带有脚本标签的响应正文被阻止。
security - Modsecurity 在 Windows Server 2008 R2 上无法正常工作
我安装了 modsecurity 版本 2.9.1 64 位,但出现错误
收到此错误后,我安装了 Visual Studio 2013 和 Microsoft Visual C++ 2012 x86 和 x64。我没有安装其他任何东西。我仍然得到错误。我该如何解决?
谢谢你的回答
owasp - Modsecurity - “主机标头是数字 IP 地址”错误的重定向循环
看起来有一个 ModSecurity OWASP 规则,当它检测到有人通过 IP 地址而不是 DNS 名称访问您的站点时,它不会以 4xx 错误拒绝,而是简单地重定向回“主页”。问题是它正在重定向回 IP 地址,这会导致再次触发相同的错误,并且您会得到一个重定向循环。
有没有办法指定对特定规则采取什么行动?
规则如下..而且我没有看到任何重定向选项,甚至没有看到任何指定特定错误的选项。
和错误日志...
- ModSecurity 如何决定采取何种行动?
- 我如何告诉 ModSecurity 停止针对此错误的重定向循环?
magento - Magento 2 无法保存类别描述 - modsecurity SQL 注入规则
我正在做一个 Magento 2 项目,并且在保存类别描述时遇到了麻烦。
在目录保存控制器操作(Magento\Catalog\Controller\Adminhtml\Category\Save)中,我正在记录请求参数:
$this->getRequest()->getParams()
在大多数类别中,所有请求参数都会通过,但某些类别会完全忽略POST参数。
在玩弄了要发布的描述值之后,我注意到当我的文本有一个文本select的实例后跟一个from的实例时,请求不会通过。
我的文字是这样的:
“我们提供从缎面到镜面的精选刀具”
我检查了 modsecurity 日志。它过滤了请求,将它们误认为是 SQL 注入。