IIS 7安装ModSecurity实现WAF功能
ModSecurity 是一款开源Web应用防火墙,支持Apache/Nginx/IIS,可作为服务器基础安全设施,还是不错的选择。
系统环境:window 2008 R2+IIS 7
0X01 ModSecurity安装
ModSecurity 下载地址:http://www.modsecurity.org/download.html
选择相应系统版本下载安装文件

一路Next,保持默认配置完成安装

安装完成以后,在C:\Program Files\ModSecurity IIS 目录存在如下文件:

0x02 相关配置
在C:\Windows\System32\inetsrv\config\applicationHost.config找到
<section name="ModSecurity" overrideModeDefault="Deny" allowDefinition="Everywhere" /></sectionGroup>
改为
<section name="ModSecurity" overrideModeDefault="Allow" allowDefinition="Everywhere" /></sectionGroup>
在ModSecurrity安装目录ModSecurity IIS下找到modsecurity.conf,将
SecRuleEngine DetectionOnly改为
SecRuleEngine On
在网站目录中,在web.config文件中添加如下配置:
<?xmlversion="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<ModSecurityenabled="true" configFile=" C:\ProgramFiles\ModSecurity IIS\modsecurity_iis.conf " />
</system.webServer>
</configuration>
如已有web.config配置文件,可在system.webServer节点增加
<ModSecurity enabled="true" configFile="C:\Program Files\ModSecurity IIS\modsecurity_iis.conf" />
0x03 效果测试
分别访问正常页面与构造SQL注入语句页面,查看拦截效果:

在应用程序日志中,也可以看到拦截日志信息:

0X04 403错误及解决
访问正常页面,403错误解决方法:
1、打开事件管理器,查看window日志--应用程序,查看拦截日志:
访问的页面被规则误拦,我们可以去删除这条规则来让页面恢复正常。在C:\Program Files\ModSecurity IIS\owasp_crs\base_rules\modsecurity_crs_41_sql_injection_attacks.conf中删除id为950001的规则。

2、继续访问页面,依然报错,继续查看日志 ,继续删除C:\Program Files\ModSecurity IIS\owasp_crs\base_rules\modsecurity_crs_21_protocol_anomalies.conf 中id为960017的规则,页面恢复正常。

0X05 WAF规则测试
对waf的防御能力做一些测试,才能对waf进行针对性改写,自定义防御规则,让waf更加强大。
PHP+Mysql:
?id=1e0union%a0select 1,current_user,3 可绕过union select 获取当前用户名,select from 还是绕不过去,查看了一下规则,正则为 (?:\\Wselect.+\\W*?from),如果只有这个正则可以用mysql内联注释构造 /*!12345select*/ 1,2,3 from 绕过,但是还有其他一些过滤如(/*、/*!、*/),暂时没想法更多的姿势了,记录一下。

bypass:%27%20%9e0union%20/*!5000select*/%0D1,%0D2,%0D3%20from--
参考文章:
nginx配合modsecurity实现WAF功能 https://www.52os.net/articles/nginx-use-modsecurity-module-as-waf.html
https://yq.aliyun.com/articles/54475
https://jesscoburn.com/archives/2013/05/14/installing-modsecurity-on-iis7-x/
IIS 7安装ModSecurity实现WAF功能的更多相关文章
- nginx配合modsecurity实现WAF功能
一.准备工作 系统:centos 7.2 64位.nginx1.10.2, modsecurity2.9.1 owasp3.0 1.nginx:http://nginx.org/download/ng ...
- 【转】Nginx 学习笔记(十一)nginx下安装配置naxsi waf防火墙(附完整编译、配置)
原文地址:http://f2ex.cn/nginx-installed-configuration-naxsi-waf/ Naxsi 是第三方 nginx 模块 ,它和 Modsecurity 都是开 ...
- win7下IIS的安装和配置 图文教程
转自 http://www.jb51.net/article/29787.htm 最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的方法,已经安装成功.在博客里记录一下,给需要的 ...
- IIS的安装与设置(windows版本)
IIS,全英文名称:Internet Information Services(互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务.IIS的功能很多,如编辑 ...
- win7下IIS的安装和配置
win7下IIS的安装和配置 图文教程,需要的朋友可以参考下 http://www.jb51.net/article/29787.htm 最近工作需要IIS,自己的电脑又是Windows7系统,找了下 ...
- 03-Windows Server 2016 IIS的安装与配置
1. 打开服务器管理器,点击[添加角色和功能选项]. 2. 进入“添加角色和功能向导”页面,点击下一步. 3. 安装类型选择[基于角色或基于功能的安装],点击下一步. 4. 进入服务器选 ...
- 使用NGINX+Openresty和unixhot_waf开源防火墙实现WAF功能
使用NGINX+Openresty实现WAF功能 一.了解WAF1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: ...
- Win8下IIS的安装和站点的公布
版权声明:本文为博主原创文章,不经博主同意注明链接就可以转载. https://blog.csdn.net/Senior_lee/article/details/32939411 之前 ...
- Asp.net Core IIS上安装部署及502.5错误解决
总结: 安装Microsoft Visual C++ 2015 Redistributable(https://www.microsoft.com/en-us/download/details.asp ...
随机推荐
- DBExportDoc V1.0 For MySQL
win7系统下或者64位系统下,安装完mysql-connector-odbc驱动后,直接进入:管理工具--数据源(ODBC),点击添加不显示该驱动,该问题解决如下:进入dos命令行,输入:C:\Us ...
- Spring配置文件<context:property-placeholder>标签使用漫谈
<context:property-placeholder>标签提供了一种优雅的外在化参数配置的方式,不过该标签在Spring配置文件中只能存在一份!!! 众所周知,Spring容器是采用 ...
- JS DOM操作思维导图
- ggplot2 subscript in x-axis labels(ticks, legend)
#==============================# ggplot2: subscript in x-axis labels(ticks) rm(list=ls(all=TRUE))lib ...
- 【协议学习】SIP基本场景分析
1.SIP业务基本知识 1.1 业务介绍 会话初始协议(Session Initiation Protocol)是一种信令协议,用于初始.管理和终止网络中的语音和视频会话,具体地说就是用来生成.修改和 ...
- Python之进度条
pip install tqdm from tqdm import tqdm,trange import time for char in tqdm(['a','b','c','d']): time. ...
- java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Date
架构使用jsp+servlet+java+mysql mysql里time字段类型为datetime java实体类中该字段类型为Date 页面中,时间字段类型为空的信息显示不出来,且报错信息如下: ...
- caffe中的错误与解决问题:
1.在使用draw_net.py的时候,提示如下错误: AttributeError: 'google.protobuf.pyext._message.RepeatedScalarConta' obj ...
- 生成基于Maven的项目文档站点
在Maven中,可以使用“mvn site”,为您的项目信息生成文档站点. mvn site 生成的网站是在项目的“target/site”文件夹中. mvn site 示例 请参见通过“mvn si ...
- gtest日志在工程项目中的应用
网上有各种gtest的入门教学,这里就不一一重复了.本文的目的是讲解如何将gtest应用于工程应用中.利用测试驱动开发这样的理论,来先写测试代码,当自动化测试跑通以后,主工程的代码也就编写完了. 这里 ...