`

一个过滤HTTP请求的Apache2.x模块(插件)

阅读更多

最近有一个网站发现有跨站漏洞:

http://www.xxxxx.xxxxx.cn/cgi-bin/publish/content_collect?name=&filecontent=&account_user=>'><script>alert('%C9%F8%CD%B8%B2%E2%CA%D4')</script>

 

在地址栏输入该URL,浏览器响应:

“渗透测试”

 

因为系统底层不是我们做的,没有源代码,所以只要找其他方式来堵住这个洞洞。首先想到的就是使用Apache的一些过滤插件,在:

http://modules.apache.org/

网站搜了一下,真发现了一个有用的插件: mod_ifier,插件官方网站是:
http://www.steve.org.uk/Software/mod_ifier/index.html

该插件网站称:

mod_ifier is an Apache2 module which allows you to filter each incoming HTTP request to your webserver - allowing you to drop Referer-spam, exploit attempts, and more.
mod_ifier 是一个允许你过滤每一个访问你的web服务器的HTTP请求的Apache2的模块 - 允许你删除Referer信息,溢出攻击尝试 等等恶意信息。

Using this module you can define a collection of rules which will be processed for each incoming request. If a rule matches then you can respond in several different ways:
使用该模块,你可以定义一系列规则来处理每一个访问进来的请求。如果访问请求符合规则,可以以几种不同的方式来响应请求:

* Return a specific HTTP status code. 
* 返回一个特定的HTTP状态代码

* Redirect the visitor to a different URL 
* 转向到另一个URL

* Execute a local program. 
* 执行一个本地程序

 

 

 

 

 

补充:ModSecurity-2.5.7手册翻译--安装


ModSecurity安装过程包含以下几步:


1、ModSecurity 2.x工作于Apache 2.0.x或者更高版本


2、确认您已经安装了mod_unique_id。
   mod_unique_id是apache的httpd中的一个包


3、服务器中还没有libxml2的话,请安装它的最新版.
   http://xmlsoft.org/downloads.html

4、如果服务中还没有安装Lua,而且你将需要使用的话,请安装5.1.x分支的最新版
   http://www.lua.org/download.html
   注意ModSecurity需要的是动态库,而采用源代码编译时默认得不到这些,所以最好采用二进制发布版本。


5、停止apache的httpd服务


6、解开ModSecurity安装包

7、Unix(或者类Unix)操作系统和Windows上进行不同的构建

Unix
a、运行configure脚本生成Makefile文件,通常不需要设置选项
./configure
更多的定制使用配置选项(使用./configure --help可以得到完整列表),但通常你只需要使用--with-apxs选项指定apache的httpd安装时的apxs的位置即可。
./configure --with-apxs=/path/to/httpd-2.x.y/bin/apxs
b、编译:make
c、可选的测试:make test
注意:这一步还是带有一点点试验性质,如果发现问题,请把构建过程中的所有输出发送到支持列表,大部分常见问题是找不到所需要的头和库文件。
d、可选构建ModSecurity的日志收集器:make mlogc
e、可选安装mlogc:查检发布版本包含在apache2/mlogc-src目录下的INSTALL文件
f、安装ModSecurity模块:make install

Windows(MS VC++ 8)
a、编辑Makefile.win文件,配置apache主目录和二进制目录
b、编译:nmake -f Makefile.win
c、安装ModSecurity模块:nmake -f Makefile.win install
d、拷贝libxml2.dll和lua5.1.dll到apache的二进制目录,当然也可以象下面的操作那样使用LoadFile命令加载那些库文件。


8、编辑apache httpd的主配置文件(通常是httpd.conf)

On UNIX(在Windows上,如果你没有按上述规定拷贝DLL文件话也可以)上你必须在ModSecurity之前加载libxml2和lua5.1,参考如下操作:
LoadFile /usr/lib/libxml2.so
LoadFile /usr/lib/liblua5.1.so

按如下加载ModSecurity
LoadModule security2_modules modules/mod_security2.so


9、配置ModSecurity

10、启动apache httpd


11、到目前为止,你应该已经装好ModSecurity 2.x并且运行它了。


--------------------------------------------------------------------------------
注意:
    如果你是自己编译的apache,那你或许经历了在PCRE上编译ModSecurity的问题,这是因为apache带上了PCRE,但通常PCRE的库文件又是由系统提供的,我希望绝大多数的供应商打包apache发布版本时配置使用外部PCRE的库文件(所以这不应成为问题)
    您想避免使用apache捆绑的PCRE库和ModSecurity使用的是系统提供的库,很简单的方法就是重新编译apach,并使用系统提供的PCRE库(或者你可以下载个最新版本的PCRE编译一下),你也可以在编译的时候使用--with-pcre开关。如果你不能重新编译apache,那么为了获得ModSecurity的编译成功,你还是需要获得捆绑的PCRE头文件(这可以在apache的代码中找到)并修改INCLUDE路径(在上述第7步中做)来指向它(通过ModSecurity的--with-pcre配置选项)。
    你注意,如果你的apache使用的是外部PCRE,那你可以在编译ModSecurity时使用WITH_PCRE_STUDY定义,这将给你的服务器处理正则表达式时有一个轻微的性能提高。


================================
ModSecurity第三方规则下载地址:
http://www.gotroot.com/tiki-index.php?page=mod_security+rules

分享到:
评论
3 楼 wdmsyf 2009-09-22  
补充一下:

ModSecurity的官网地址:

http://www.modsecurity.org/
2 楼 wdmsyf 2009-09-22  
谢谢1楼的兄弟,看mod_security的介绍,好象是比mod_ifier还好。

BTW: 看来知识是越共享,越丰富啊!
1 楼 魔力猫咪 2009-09-22  
ModSecurity也可以试试。昨天看到的一个开源Web应用防火墙。

相关推荐

    org.apache.felix.http.samples.filter-2.2.2.zip

    【标题】"org.apache.felix.http.samples.filter-2.2.2.zip" 是一个与Apache Felix框架相关的HTTP过滤器示例项目的压缩包。Apache Felix是一个流行的开源Java框架,它实现了OSGi(Open Service Gateway Initiative)...

    Apache Solr lucene 搜索模块设计实现

    2. **Apache Solr**:Solr 基于 Lucene,提供了一个更高级的、企业级的搜索平台。它添加了分布式搜索、缓存、集群、日志记录、查询分析、结果高亮、分面搜索等功能,并且提供了基于 XML 和 JSON 的 RESTful API,...

    apache-solr-4.0.0-ALPHA-src.gz官方包

    Apache Solr 是一个高度可扩展、高性能的全文检索服务,由Apache软件基金会开发并维护。它基于Java,提供了一个高效、灵活的搜索平台,广泛应用于网站搜索、企业级内容管理和数据挖掘等领域。Apache Solr 4.0.0-...

    ES同义词插件 analysis-dynamic-synonym7.5.1版本

    1. httpclient-4.5.13.jar:这是一个HTTP客户端库,用于在Elasticsearch中执行HTTP请求,可能是插件依赖的一部分。 2. commons-codec-1.11.jar:Apache Commons Codec库,提供了各种编码和解码功能,如Base64、URL...

    struts2.x hibernate spring 整合

    Struts2是Apache软件基金会的一个开源项目,它是基于MVC设计模式的Web应用框架,用于简化Java Web应用程序的开发。Struts2的核心是Action类,它接收HTTP请求并调用业务逻辑,然后将结果返回到视图层。Action与视图...

    Apache shiro 1.13.0源码

    Apache Shiro 是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,简化了企业级应用的安全实现。Shiro 1.13.0 是其一个重要的版本,包含了多项更新和改进。在这个版本中,开发者可以深入理解其...

    apache-tomcat-7.0.53-windows-x64.rar

    Apache Tomcat 7.0.53 是一个广泛使用的开源软件,它是一个符合Java Servlet和JavaServer Pages(JSP)规范的应用服务器,专门用于运行基于Java的Web应用程序。这款服务器在开发和部署Java EE(Java Platform, ...

    apache-tomcat-9.0.0.M1-src

    - 在Tomcat中,每个Servlet都是一个Java类,通过实现javax.servlet.Servlet接口或其子接口javax.servlet.http.HttpServlet来完成特定的Web功能。 2. **JSP支持**: - 除了Servlet,Tomcat还支持JSP(JavaServer ...

    atsinternals, Apache Traffic Server 源代码分析.zip

    Apache Traffic Server(ATS)是一款高性能、可扩展的开源代理服务器,广泛用于内容分发网络(CDN)和大型网站的缓存解决方案...对于那些希望在CDN、云服务或高性能网络应用领域工作的开发者来说,这是一个宝贵的资源。

    apache-tomcat

    Apache Tomcat是一个开源的软件应用服务器,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。在本文中,我们将深入探讨Apache Tomcat 7.0.57版本的相关知识点,包括其功能、安装与配置、管理以及...

    struts2乱码与json插件(1)

    Struts2是一个非常流行的Java Web框架,用于构建和维护可扩展且模块化的MVC(Model-View-Controller)应用程序。在处理中文字符时,可能会遇到乱码问题,尤其是在用户输入和展示数据时。Struts2提供了多种方式来解决...

    apache-tomcat-7.0.88.rar

    它还支持多种插件和第三方模块,如JK(mod_jk)用于与Apache HTTP服务器集成,以及Clustering功能,实现负载均衡和高可用性。 8. **日志和错误处理**:Tomcat提供了丰富的日志记录功能,帮助开发者诊断问题。它支持...

    apache shiro 实例

    Apache Shiro 是一个强大且易用的Java安全框架,它提供了认证、授权、加密和会话管理功能,简化了企业级应用的安全实现。本实例将深入探讨 Apache Shiro 的核心概念和常见用法。 1. **认证**:Shiro 提供了用户身份...

    apache-tomcat-6.0.29-src.tar

    总的来说,"apache-tomcat-6.0.29-src.tar"是一个宝贵的资源,对于学习和研究Tomcat内部工作原理、开发自定义插件或者优化现有部署都是极其有价值的。通过深入研究这个源代码,开发者可以提升自己的Java Web开发技能...

    Struts2初步使用总结

    3. **成熟度**:作为一个成熟且稳定的框架,Struts2有着广泛的社区支持和丰富的插件资源,这对于企业级应用尤为重要。 **1.2 什么是Struts2** Struts2是一个开源的Java Web框架,它继承了Struts1的优点,并对其...

    java写的一个权限控制的插件

    Jaas提供了一个模块化的体系结构,允许开发者为不同的安全策略和认证机制编写插件。 权限控制插件的核心功能可能包括以下几点: 1. **角色与权限管理**:在系统中,用户被分配到不同的角色,每个角色拥有特定的...

    struts2引用库

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Web开发领域具有广泛的应用。这个"struts2引用库"主题主要涵盖了Struts2框架的核心组件、依赖库以及如何在项目中正确引用和配置...

    IIS与Apache优缺点

    2. **强大的性能**:IIS 6.0引入了一种分离的处理模型,HTTP.sys驱动程序负责接收请求并将其放入队列,工作器进程则处理这些请求。这样的设计提高了系统在遇到问题时的容错能力,可以在工作器进程故障时仍能接受新...

    Struts2开发依赖包

    Struts2是一个基于MVC(Model-View-Controller)设计模式的Java web应用程序框架,它在Java社区中广泛用于构建动态、数据驱动的Web应用。Struts2提供了强大的控制器组件,使得开发者能够轻松地实现业务逻辑与表现层...

    深入浅出struts2.rar

    Struts2是Apache软件基金会下的一个开源项目,它是Struts1的升级版,继承了其优点并解决了Struts1的一些问题。它提供了一种灵活的Action处理机制,通过拦截器实现业务逻辑与视图的分离,使得代码更加模块化。 二、...

Global site tag (gtag.js) - Google Analytics