IIS 7安装ModSecurity实现WAF功能
2017-11-27 17:20
363 查看
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找到
在ModSecurrity安装目录ModSecurity IIS下找到modsecurity.conf,将
在网站目录中,在web.config文件中添加如下配置:
如已有web.config配置文件,可在system.webServer节点增加
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 绕过,但是还有其他一些过滤如(/*、/*!、*/),暂时没想法更多的姿势了,记录一下。
参考文章:
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/
系统环境: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 绕过,但是还有其他一些过滤如(/*、/*!、*/),暂时没想法更多的姿势了,记录一下。
参考文章:
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/
相关文章推荐
- nginx配合modsecurity实现WAF功能
- nginx配合modsecurity实现WAF功能
- CarlosAg.ExcelXmlWriter实现.net下Excel导出功能(服务端不需要安装Excel程序)
- windows server 2008下安装SQL SERVER 2005出现IIS功能要求警告解决方案
- windows server 2008下安装SQL SERVER 2005出现IIS功能要求警告解决方案
- 罗技mx5000驱动安装,实现所有功能(不用罗技原装接收器)
- vs2005安装程序的制作、.Net框架、数据库打包、卸载功能实现
- 装机精灵功能实现猜想(驱动安装)
- Linux里的防火墙(下):iptables的扩展模块——l7-filter的安装与功能实现
- Linux里的防火墙(下):iptables的扩展模块——l7-filter的安装与功能实现
- Linux安装vsftpd服务实现FTP功能
- win7下,sql2005安装,提示 iis功能和com+目录要求 的解决
- CKEditor 3安装和使用 & 自定义的Servlet实现CKEditor3的上传功能
- 网站安装打包 浏览网站[五] 附加IIS其它功能
- IIS 6.0下安装SSL数字证书实现https访问
- windows server 2008下安装SQL SERVER 2005出现IIS功能要求警告解决方案
- 用U盘boot自启动实现LINUX的安装及其他WIN功能
- Windows 7 64位中安装IIS失败?“出现错误。并非所有的功能被成功更改”
- 利用WinForm 更好的实现Web安装程序的更多功能
- 特殊安装的实现--IIS自动配置与卸载、SQL自动导入