0x00前言
X-WAF是一款适用中、小企业的云WAF系统,让中、小企业也可以非常方便地拥有自己的免费云WAF.
本文从代码出发,一步步理解WAF的工作原理,多姿势进行WAF Bypass。
0x01 环境搭建
官网: https://waf.xsec.io
github源码: https://github.com/xsec-lab/x-waf
X-WAF下载安装后,设置反向代理访问构造的SQL注入点
0x02 代码分析
首先看一下整体的目录结构
nginx_conf 目录为参考配置 (可删除) ,rules目录存放过滤规则init.lua 加载规则,access.lua 程序启动,config.lua 配置文件主要逻辑实现全部在util.lua和waf.lua文件。
代码逻辑很简单,先熟悉一下检测流程,程序入口在waf.lua 第262-274行中
-- waf start function _M.check() if _m.white_ip_check() then elseif _m.black_ip_check() thenelseif _m.user_agent_attack_check() then elseif _m.white_url_check() then elseifM.ur1_attack_check() then elseif _m.cc_attack_check) then elseif _m.cookieattack_check(then elseif _m.urlargs_attack check() then elseif M.post attack check) then else returnend