问题标签 [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 - 是否可以在没有 root 访问权限的情况下调试 mod_security2 问题?
我最近一直在用 CakePHP 开发一个应用程序,一切都很好,直到它不是。在我们的开发服务器(由我控制)上,应用程序运行得很好。在实时服务器(我们大学控制)上,我的大多数 POST 请求都会导致 403 页面。我发现在这些情况下甚至从未调用 PHP,而且我 99% 确定两者之间唯一真正的配置差异是 mod_security2。
这是我的麻烦。我看不到 error_log 文件,因为我不是 root。我什至无法列出它所在的目录。我们必须拥有世界上最慢的管理员,我正试图尽快解决这个问题。有没有什么方法可以调试 mod_security2 而不是简单地向它抛出一些发布数据,直到它打破希望“猜测”你可能做错了什么?
我试过查看配置文件(我确实有读取权限),但我以前从未使用过这个 mod,这就像涉水过糖蜜。我什至不知道从哪里开始。
完全禁用 mod 不是一种选择,恐怕我只需要使用它。帮助。
forms - 你能告诉 CakePHP 的表单助手使用不同的命名方案吗?
我在安全服务器上部署 CakePHP 应用程序时遇到了一些问题。管理员安装了 mod_security2,它在尝试验证表单中的 POST 数据时抛出错误。
如果这是问题,我还没有完全确定,但我认为 mod_security 非常不喜欢表单助手生成的字段名称中使用的括号。字段名称始终采用以下形式:
数据[表名][字段名]
当我提交使用这些名称的表单时,apache 日志会告诉我以下信息(为理智添加了换行符):
我推测我正在触发 XSS 注入规则,我的猜测是,它不喜欢字段名称中的“][”。提交空表单以及提交完整填写的表单时会发生这种情况。我已经确认在这种情况下甚至没有调用 PHP。
我无法关闭 mod_security,因为它不是我控制的服务器,所以我一直在处理它。看起来合乎逻辑的“修复”是不在字段名称中使用 [] 括号,但我不知道如何告诉表单处理程序这样做。使用默认命名约定,所有教程看起来都很好。
有没有办法全局更改表单处理程序处理输入元素的字段名称的方式?除此之外,有没有办法为每个单独的元素覆盖它?我不完全确定 cake 的核心引擎如何处理结果——如果模型将其解释为特定格式,那么我可能会被卡住。
apache - ModSecurity 规则:哪个更好 - GotRoot 或 TrustWave?
我们正在为 ModSecurity (mod_security) 寻找一些额外的规则 - 有 2 个商业选项,GotRoot 或来自 TrustWave 的新选项
http://www.gotroot.com/mod_security+rules
https://www.trustwave.com/modsecurity-rules-support.php
我听说过 TrustWave,但没有听说过 GotRoot。然而,GotRoot 规则似乎在 Google 等上有更多提及 - 似乎 TrustWave 的规则仅在大约一个月前出现
我们将使用它们来保护电子商务网站
mod-security - ModSecurity:如何根据“严重性”级别“执行”?
我正在使用 mod_security 2.6.3,我希望能够根据规则严重性级别执行 shell 脚本。我正在使用核心规则集 (CRS),它在检测到攻击时将严重性级别设置为 2(表示“严重”)。
只要严重性足够高,我想执行我的脚本。
我尝试使用该SecDefaultAction
设置,例如:
但是由于“执行”操作是“非破坏性”操作,因此无论触发关键规则还是非关键规则,它总是会被执行。
我可以检查每个关键SecRule
并在其旁边添加“exec”,但这会很乏味(并且重复且丑陋)。
我以为我可以做类似的事情:
但不知何故,它永远不会被执行,可能是因为关键规则有一个阻止或拒绝语句来停止规则处理(因为被认为是破坏性的)。
我还尝试使用 CRS 异常评分功能,如下所示:
但它仍然没有得到处理。关于我如何做到这一点的任何想法?
c# - 禁用 mod-security cpanel
我开发了一个同步。基于C#的软件。它从数据库中读取一些值并将字符串作为 url。然后使用 WebClient 调用 url 并传递带有值的 url。在服务器上,我编写了一个使用 $_GET 来获取值的 php 页面,然后将它们插入到 mysql 数据库中...对于第一个记录,这是可行的,但在那之后我的程序以 406-Not Acceptable 异常结束。经过一些搜索,我知道问题中的 modsecurity。我尝试禁用它。所以,我将这些行添加到 .htaccess 文件中:
但它不起作用......我尝试解决这个问题,我发现我的 cpanel 是 cpanel 加速 2......所以我将代码更改为:
但是现在,有了这个改变,我的所有页面都无法正常工作,我收到错误 500 ......现在我喜欢有人帮助我......
apache - mod_security 仅阻止 Internet Explorer
我用 apache 服务器安装了 mod_security,现在它只阻止了 ie7/8/9 浏览器。(我可以用 firefox/chromium/etc 浏览网页)
日志说:
规则 id "960038" 是:
我有一个主要问题,另外两个来自第一个问题:
- 我怎么知道这条规则是什么?
- 忽略此规则是否安全?
- 有什么方法可以修改规则以允许浏览网页?
mod-security - ModSecurity:规则是否按规则 ID 升序执行?
我正在创建我的自定义 mod-security 规则,并且我有一个关于规则 ID 是否会影响规则执行顺序的问题。
我目前的设置是:
- 我正在使用 mod-security 版本:2.6.3-1ubuntu0.2
- 我的 mod-security 配置基于http://mod-security.svn.sourceforge.net/viewvc/mod-security/m2/trunk/modsecurity.conf-recommended(它有 5 个 SecRule 指令 - ids:200000 - 200005)
- 我的规则在一个单独的文件/etc/apache2/conf.d/modsecurity-activated-rules.conf中,它们是在 modsecurity 配置/etc/apache2/conf.d/modsecurity.conf之后加载的
我的规则是:
免责声明:这是一个简单的规则,可能不是最优的,因为我还在学习。欢迎提出建议
所以,在我分析了调试文件(激活了 9 级)之后,我的问题出现了:
正如调试行所示,我的规则 (id:1001) 在规则 (id:200000) 之前首先执行,即使我的规则是在 20000x 之后读取的。
我认为 ID 在规则执行的顺序上并不重要,因为 OWASP ModSecurity 核心规则集https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project的规则 ID 介于 950000 和 990000 之间,并且没有有关特定攻击的规则 ID 范围的信息:SQLi、XSS 等。
综上所述,我的问题是:
- 规则执行是否由 ID 号决定(最小的号先执行)?
- 是否有任何文档定义应将哪些规则 ID 范围用于自定义规则?我正在寻找类似的东西:
- Mod-security 主要规则:200.000 - 200.xxx
- OWASP ModSecurity 核心规则集:950.000 - 999.xxx
- 自定义规则:1.000.000 - 9.xxx.xxx
谢谢你的时间。
php - WHMCS 被 {php} 和 Eval base64 代码通过票证入侵
WHMCS 使用 Smarty 作为它的模板系统,虽然一个很棒的模板系统它有一个缺陷,即{php}
标签。这些标签允许 smarty 直接在模板中解释 PHP 代码,或者在这种情况下,在创建新工单时通过工单系统解释。这种 hack 一直发生在 WHMCS 系统中,您可以尝试通过配置中的阻止文本选项来阻止 WHMCS 中的代码。但大多数时候这不起作用。
发生的情况是 WHMCS 接受了票,并且黑客在票消息中添加了以下内容:
如此聪明的人看到了这个{php}
部分,立即让 PHP 运行该命令。所以它首先对base64编码的PHP进行解码。这将带出一些黑客试图运行的 PHP 函数/脚本。
然后 eval 接管并实际评估 PHP 代码并在服务器端运行它。
许多黑客采用这种方式,他们运行他们知道可以在 WHMCS 中运行的代码,然后获取数据库信息并将其回显到文件中。然后他们只是通过浏览器 URL 抓取这个文件并获得他们想要的信息。
这仅适用于某些 WHMCS 安装,尽管 WHMCS 表示最新版本不允许这样做,并且在 Smarty 中禁用了 {php},有时黑客确实会找到一种方法来绕过它和eval
他们的代码。
php - 以 url 为参数的 Mod-security 例外规则
我是 mod 安全的新手,并且能够将它安装在我的服务器上。但是,在安装后,托管的网站正在崩溃。在跟踪问题后,我发现它不允许我在 php 代码中将 url 作为参数传递。例如:xyz.php?url= http://www.example.com/img/abc.jpg¶m2=xyz 是否可以将任何例外添加到 modsecurity 以便允许将 url 作为参数传递。
感谢您,
阿齐姆
php - 带连字符的 GET 引发错误 403
我有一个PHP
脚本可以处理来自支付处理器的回调。
如果查询字符串 'result' 包含双破折号后跟一个单破折号,我们会得到 403,例如
.htaccess
对于此站点,或中没有重写规则apache config
。
加载的模块如下: