渗透测试实战中该怎么绕过WAF的拦截?



      这儿分享一个新项目,总体目标系统软件不合情理但有一个极为nb的waf。我与它互斗每日

进度一点点,最后用一周时间基础拿下。
一直觉得waf这类物品只有避免无目地的进攻,在目

的性的进攻眼前,则只有推迟一点时间罢了,并不可以真实处理系统软件的安全难题。如今

waf普遍应用的【根据特点】的检验方法有稀奇古怪的进攻技巧能够 绕开,而新式的【根据个

人行为】的检验方法国内还不完善。
 
 
 
这里分享的实例是国内的一个【根据特点+个人行为】的waf,新项目沒有截屏,只有憋屈各

位看文章内容想象一下。(第一天)最先取得手是一个app,放进手机模拟器抓包软件获取

app关键网站域名+浏览途径,注册帐号在网页页面上登录开展检测。技术性状况搜集以下

:总体目标系统软件架构thinkcmf,修补了系统日志泄漏系统漏洞,分布式数据库nginx,

电脑操作系统linux,有一个不知道哪一个生产商的cdn并附加waf。随便测一测每个作用和

网页页面,thinkcmf这类大架构的安全性還是可以的,可是吃不住沒有安全观念的开发设

计自身乱敲代码。

 
 
迅速我发现了url中的一个【伪静态主要参数单引号出错】,总体目标打开了tp的sql调试

模式,出错內容十分详尽:有sql语句,环境变量里全部內容含盐量,当今库名表名,当

今客户在客户表格中的全部字段名和数据信息等。即然早已拥有数据库查询帐户和登陆

密码(环境变量中),最先看可否绕开cdn寻找真正ip立即联接,试着许多方式无果,

出错网页页面中实际上也是有ip基本信息,可是仅有cdn的ip和一个内网ip。放弃幻想刚

开始手工制作注入语句,最先用一般的/*!50000*/搞混payload,现场被拦,后边开展模

糊不清检测,观查了这一waf检验的特点与绕开方式以下:
 
 
(0)英文大小写互用、url、16进制编号没用
 
(1)过虑unionselect,uniondistinctselect绕开
 
(2)过虑select空格符,select后边的主要参数用冒号包囊可以不用空格符
 
(3)过虑空格符from和from靠着的哪个主要参数用科学计数法可以不用空格符
 
(4)过虑from空格符from{x表名}英语的语法绕开
 
(5)过虑information_schema,没能绕开,造成 查不出表位居名,但还行客户表的

表名和字段名都会出错网页页面爆出来无需查。

 
(6)过虑注解符/*-#调节payload在适度的部位加括弧可以无需注解最后注出客户表

数据信息的payload以下(联合查询,四列,2、3列回显):/a/b/c/id/1)uNiondistin

ct(select'1',username,password,3e0from{xuser}orderby1limit0,1.0随后……休息时

间来到。【今天成效】:app基础信息收集,数据库查询比较敏感信息内容获得,

sql注入绕开waf查寻客户表。
分享: