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功能的更多相关文章

  1. nginx配合modsecurity实现WAF功能

    一.准备工作 系统:centos 7.2 64位.nginx1.10.2, modsecurity2.9.1 owasp3.0 1.nginx:http://nginx.org/download/ng ...

  2. 【转】Nginx 学习笔记(十一)nginx下安装配置naxsi waf防火墙(附完整编译、配置)

    原文地址:http://f2ex.cn/nginx-installed-configuration-naxsi-waf/ Naxsi 是第三方 nginx 模块 ,它和 Modsecurity 都是开 ...

  3. win7下IIS的安装和配置 图文教程

    转自   http://www.jb51.net/article/29787.htm 最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的方法,已经安装成功.在博客里记录一下,给需要的 ...

  4. IIS的安装与设置(windows版本)

    IIS,全英文名称:Internet Information Services(互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务.IIS的功能很多,如编辑 ...

  5. win7下IIS的安装和配置

    win7下IIS的安装和配置 图文教程,需要的朋友可以参考下 http://www.jb51.net/article/29787.htm 最近工作需要IIS,自己的电脑又是Windows7系统,找了下 ...

  6. 03-Windows Server 2016 IIS的安装与配置

    1. 打开服务器管理器,点击[添加角色和功能选项].        2. 进入“添加角色和功能向导”页面,点击下一步. 3. 安装类型选择[基于角色或基于功能的安装],点击下一步. 4. 进入服务器选 ...

  7. 使用NGINX+Openresty和unixhot_waf开源防火墙实现WAF功能

    使用NGINX+Openresty实现WAF功能 一.了解WAF1.1 什么是WAF Web应用防护系统(也称:网站应用级入侵防御系统 .英文:Web Application Firewall,简称: ...

  8. Win8下IIS的安装和站点的公布

    版权声明:本文为博主原创文章,不经博主同意注明链接就可以转载. https://blog.csdn.net/Senior_lee/article/details/32939411         之前 ...

  9. Asp.net Core IIS上安装部署及502.5错误解决

    总结: 安装Microsoft Visual C++ 2015 Redistributable(https://www.microsoft.com/en-us/download/details.asp ...

随机推荐

  1. python 按照自然数排序遍历文件 python os.listdir sort by natural sorting

    import os import re def sorted_aphanumeric(data): convert = lambda text: int(text) if text.isdigit() ...

  2. OpenGL透明与混色效果

    一.理论讲解 在OpenGL中,物体透明技术通常被叫做混合(Blending). 透明是物体(或物体的一部分)非纯色而是混合色,这种颜色来自于不同浓度的自身颜色和它后面的物体颜色. 一个有色玻璃窗就是 ...

  3. Python 中 __all__ 的作用

    1.测试文件foo.py # -*- coding: utf-8 -*- # import sys # reload(sys) # sys.setdefaultencoding('gbk') __al ...

  4. keystone源码分析(一)——Paste Deploy的应用

    本keystone源码分析系列基于Juno版Keystone,于2014年10月16日随Juno版OpenStack发布. Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用 ...

  5. ajax 把返回结果作为参数传递

    这个涉及到js的异步执行了,程序本身是同步执行的,到了getJSON这里的时候,这个函数是异步的,而 load_val这个函数是同步的,你需要这样来异步返回这个值 function load_val( ...

  6. CentOS6.8下安装MySQL5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  7. Hadoop学习笔记——WordCount

    1.在IDEA下新建工程,选择from Mevan GroupId:WordCount ArtifactId:com.hadoop.1st Project name:WordCount 2.pom.x ...

  8. 怎样解决Java Web项目更改项目名后报错

    作为企业级开发最流行的工具,用Myeclipse开发java web程序无疑是最合适的,有时候,我们需要web工程的项目名,单方面的改动工程的项目名是会报错的,那么该如何改web工程项目名呢? 简 单 ...

  9. SharePoint PowerShell使用Export-SPWeb和Import-SPWeb指令来导出和导入网站

    导出网站,例如: Export-SPWeb -Identity http://win2012sp2013:1000/Hopewell_Portal/ -Path "C:\KenmuTemp\ ...

  10. UNIX环境编程学习笔记(10)——文件I/O之硬链接和符号链接

    lienhua342014-09-15 1 文件系统数据结构 UNIX 文件系统通过 i 节点来存储文件的信息.如图 1 所示为一个磁盘柱面上的 i 节点和数据块示意图.其中 i 节点是一个固定长度的 ...