ngx_lua_waf
ngx_lua_waf是一个基于lua-nginx-module(openresty)的web应用防火墙
源码:https://github.com/loveshell/ngx_lua_waf
安装部署
系统版本:Centos6.5 x86_64
1、openresty的配置
yum -y install pcre pcre-devel wget https://openresty.org/download/openresty-1.9.15.1.tar.gz tar -zxvf openresty-1.9.15.1.tar.gz cd openresty-1.9.15.1 ./configure gmake && gmake install
2、配置ngx_lua_waf
git clone https://github.com/loveshell/ngx_lua_waf.git
在nginx.conf的http段添加 lua_package_path "/usr/local/openresty/nginx/conf/ngx_lua_waf/?.lua"; lua_shared_dict limit 10m; init_by_lua_file /usr/local/openresty/nginx/conf/ngx_lua_waf/init.lua; access_by_lua_file /usr/local/openresty/nginx/conf/ngx_lua_waf/waf.lua; 配置config.lua里的waf规则目录(一般在ngx_lua_waf/wafconf/目录下) RulePath = "/usr/local/openresty/nginx/conf/ngx_lua_waf/wafconf" attacklog = "on" logdir = "/usr/local/nginx/logs/waf"
3、waf日志配置
#将nginx.conf首行的”# user nobody;”的”#”注释去掉,重新启动nginx服务 user nobody #将防护日志目录所属user和group修改为nobody,目录权限可设为700也可以写入 cd /usr/local/nginx/conf chown -R nobay.nobady waf //chmod 700 waf
Bypass WAF
1、GET+POST+COOKIE绕过
这种姿势是有限定条件的,目前只在ASPX环境测试成功
条件:使用Request.Params["id"]来获取参数, 三种方式可以进行参数传递:(1). Form (2). ?id= (3).cookie
获取到参数拼接起来,通过HPP可成功Bypass