对某APP的渗透测试实战 绕过WAF防火墙



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

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

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

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

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

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

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

标系统软件架构thinkcmf,修补了系统日志泄漏系统漏洞,分布式数据库nginx,电脑操作系统

linux,有一个不知道哪一个生产商的cdn并附加waf。随便测一测每个作用和网页页面,thinkc

mf这类大架构的安全性還是可以的,可是吃不住沒有安全观念的开发设计自身乱敲代码。

 
 
迅速我发现了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)uNiondistinct(select'

1',username,password,3e0from{xuser}orderby1limit0,1.0随后……休息时间来到。【今

天成效】:app基础信息收集,数据库查询比较敏感信息内容获得,sql注入绕开waf查寻

客户表。
分享: