AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 642804
Accepted
DrZaiusApeLord
DrZaiusApeLord
Asked: 2014-11-08 08:54:43 +0800 CST2014-11-08 08:54:43 +0800 CST 2014-11-08 08:54:43 +0800 CST

测试 mod_security 是否实际工作

  • 772

我第一次在我的登台服务器上运行它,我认为我做的一切都是正确的。当我对它运行 nikto2 时,我可以在 modsec_audit.log 中看到条目,但是对于我的生活,我无法手动使 mod_security 阻止任何内容。我已经将 SQL 放入 URL、表单等中,并且我刚刚得到了我们典型的用户友好的 HTML 404 页面,而不是来自 mod_security 的块,它应该是 403 错误或完全块。

我担心它只是检测而不是停止。我检查了我的配置,它肯定会阻止攻击,而不仅仅是检测它们。关于如何验证这个东西实际上是阻止攻击的任何想法?任何人都有一个测试 URL 或者我可以做的事情会向我证明它确实有效?

mod-security
  • 7 7 个回答
  • 40754 Views

7 个回答

  • Voted
  1. Hrvoje Špoljar
    2014-11-08T08:57:51+08:002014-11-08T08:57:51+08:00

    默认情况下,引擎只会检测模式:

    SecRuleEngine DetectionOnly
    

    你需要调整SecRuleEngine On

    sed -ie 's/^\s*SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/modsecurity/modsecurity.conf
    

    并重新启动 Apache。

    • 5
  2. Marius
    2017-12-15T00:41:10+08:002017-12-15T00:41:10+08:00

    在您的浏览器中尝试访问托管在该服务器上的网站,如下例所示:

    http://www.anywebsitefromthatserver.com/aphpfilethatdonotexist.php?something=../../etc
    

    然后检查 Modsecurity 日志,你会有类似的东西(如果你有 WHM / cPanel -> 签入 WHM -> Modsecurity Tools 以查看日志):

    2017-12-14 10:28:41 www.anywebsitefromthatserver.com    YOUR IP: 68.XX.XX.XX    CRITICAL    404  930100: Path Traversal Attack (/../)
    

    详细的日志将如下所示:

    Request:    GET /aphpfilethatdonotexist.php?something=../../etc
    Action Description: Warning.
    Justification:  Pattern match "(?i)(?:\\x5c|(?:%(?:c(?:0%(?:[2aq]f|5c|9v)|1%(?:[19p]c|8s|af))|2(?:5(?:c(?:0%25af|1%259c)|2f|5c)|%46|f)|(?:(?:f(?:8%8)?0%8|e)0%80%a|bg%q)f|%3(?:2(?:%(?:%6|4)6|F)|5%%63)|u(?:221[56]|002f|EFC8|F025)|1u|5c)|0x(?:2f|5c)|\\/))(?:%(?:(?:f(?:(?:c%80|8)%8)?0%8 ..." at REQUEST_URI_RAW.
    

    如果您会看到类似的日志,那么您可以确定您的 Modsecurity 已激活并正常工作。

    • 5
  3. Best Answer
    DrZaiusApeLord
    2014-11-11T06:53:07+08:002014-11-11T06:53:07+08:00

    我找到了答案。只需像这样访问您的网站:example.com/etc/passwd

    这将从 mod_security 中弹出一个即时 403 并将其记录在其默认日志中。

    • 3
  4. vikas027
    2017-10-26T23:49:15+08:002017-10-26T23:49:15+08:00

    我有一张支票如下

    $ curl -ks -o /dev/null -w '%{http_code}' "https://something.example.com/foo?username=1'%20or%20'1'%20=%20'"
    

    如果你得到一个403,那么 ModSecurity 正在按预期工作。

    • 3
  5. dcos
    2018-11-09T08:50:14+08:002018-11-09T08:50:14+08:00

    您可以查看 Rapid7 指南了解基本配置。

    https://blog.rapid7.com/2017/04/09/how-to-configure-modsecurity-with-apache-on-ubuntu-linux/

    有几个测试卷曲应该产生日志条目。根据您的设置,日志条目同时出现在 /var/log/apache2/access 和 /var/log/apache2/modsec_audit.log 中

    跨站脚本测试

    curl 'http://www.example.com/?q="><script>alert(1)</script>'
    

    SQL注入

    curl "http://www.example.com/?q='1 OR 1=1"
    
    • 3
  6. Vicky
    2014-11-10T21:15:14+08:002014-11-10T21:15:14+08:00

    您可以在 Google 上搜索一些在线“XSS 测试器”或“XSS 扫描器”,并让该工具对您的临时站点进行一些请求攻击。该工具还可能为您提供一份详细说明“攻击”结果的报告。

    然后,您可以跟踪您的日志以查看条目是否与报告匹配,尤其是日期、时间和 IP 地址(如果有)。

    • 1
  7. Abe
    2022-01-05T02:39:07+08:002022-01-05T02:39:07+08:00

    尝试这个:https://example.com/?id=1 and 'c'='c'

    将 example.com 替换为您的域名。使用上面突出显示的整个 URL。这应该返回 403。

    • 0

相关问题

  • 如果 Apache 落后于 Nginx,ModSecurity 的必要性

  • 如何确定我的 apache 服务器上是否安装了 mod_security?

  • 在 .htaccess 文件中添加一行时出现 500 内部服务器错误

  • 禁用特定目录的 modsecurity

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve