说明: 本文以Windows环境下的Apache安装mod_security为例, 介绍开源WAF产品的安装使用。
http://www.modsecurity.cn/
https://github.com/SpiderLabs/ModSecurity
一、WAF基本介绍
WAF全称Web Application Firewall,即Web应用防火墙。Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品,跟网络防火墙的作用不同。
WAF的使用场景: 例如服务器中有些安全性比较差的应用程序,比如旧版的wordpress、discuz、phpwind等,审计和修改全部代码比较麻烦,这时候最好的办法就是通过部署WAF来实现安全防护。
WAF可以防护的常见风险包括:SQL注入、XSS、利用本地/远程文件包含漏洞进行攻击、PHP代码注入、黑客扫描网站、源代码/错误信息泄露等等。
目前市面上的WAF非常多,总体上可以分成3类: 硬件型WAF(厂商安装)、云WAF(比如阿里云腾讯云华为云的WAF,购买服务)、软件型WAF(可以部署在Apache、Nginx等HTTPServer中,有很多开源的产品)。
二、下载mod_security
下载和安装Apache的步骤参考:《02-Windows安装phpstudy》。
如果使用phpstudy内置的Apache,Apache文件在Extensions目录下,如:E:\phpstudy_pro\Extensions\Apache2.4.39
1、下载mod_security
下载mod_security,根据操作系统位数选择,win64是64位,win32是32位。
https://www.apachelounge.com/download/
【一一帮助安全学习,所有资源可以微信扫描下方CSDN官方认证二维码免费领取一一】
解压 mod_security-2.9.3-win64-VS16.zip,复制两个文件: 1)复制 mod_security2.so 到 apache/modules 文件夹 2)复制 yajl.dll 到 apache/bin 文件夹
2、修改 Aapche 配置文件
修改 Apache2.4.39\conf\httpd.conf 主要修改内容(没有就加上,有就取消注释,放在相同的模块附近): 取消注释:
LoadModule security2_module modules/mod_security2.so
下面添加一行:
LoadModule unique_id_module modules/mod_unique_id.so
添加
Include conf/modsecurity/*.conf
3、修改 modsecutiry 配置文件
打开 mod_security-2.9.3-win64-VS16\mod_security-2.9.3\mod_security 复制一个 modsecurity.conf-recommended,改名为 modsecurity.conf
在 Apache2.4.39\conf 下创建一个文件夹,命名为 modsecurity 把 modsecurity.conf 放在 modsecurity 文件夹下
modsecurity.conf 修改/添加两行配置:
SecRuleEngine On
SecDefaultAction "deny,phase:2,status:403"
此处含义是开启安全规则引擎,如果触发规则,默认防护措施是 返回 HTTP 403 错误。 修改日志路径,否则 Apache 启动会报路径不存在的错误:
SecAuditLog E:\phpstudy_pro\Extensions\Apache2.4.39\logs\modsec_audit.log
因为没有 unicode.mapping 文件,这一行要注释
SecUnicodeMapFile unicode.mapping 20127
三、添加 owasp 规则
1、下载规则文件
https://github.com/SpiderLabs/owasp-modsecurity-crs
2、配置规则
解压 owasp-modsecurity-crs-3.2.0,把 rules 文件夹复制到 Apache2.439\conf\modsecurity 目录下 复 制 crs 根 目 录 下 的 crs-setup.conf.example , 重 命 名 为 crs-setup.conf,放在 Apache2.4.39\conf\modsecurity 目录下
3、修改 httpd.conf
Apache2.4.39\conf\httpd.conf 再添加下面这一行(第一行前面 添加过了):
Include conf/modsecurity/rules/*.conf
4、重启 Apache
所有配置修改完以后重启 Apache。
5、测试注入
这时候尝试注入,返回 phpstudy 的 403 页面:
如果sqlmap 也无法注入:
sqlmap --purge (先清空缓存)
sqlmap.py -u http://localhost/school/url.php?id=1
结果显示有 75 次 403 禁止访问的错误。
读者福利:知道你对网络安全感兴趣,便准备了这套网络安全的学习资料
👉[[[CSDN大礼包:《黑客&网络安全入门&进阶学习资源》免费分享]]](安全链接,放心点击)
对于0基础小白入门:
如果你是零基础小白,想快速入门网络安全是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括: 网络渗透、逆向分析、漏洞攻击、内核安全、移动安全、破解PWN等众多子方向。 带你从零基础系统性的学好网络安全!
👉网安学习成长路线图、网安视频合集👈
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉精品网安学习书籍👈
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
👉网络安全源码合集+工具包👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉CTF项目实战👈
学习网安技术最忌讳纸上谈兵,而在项目实战中,既能学习又能获得报酬的CTF比赛无疑是最好的试金石!
最后就是大家最关心的网络安全面试题板块
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】