【技术讨论】渗透测试中的Bypass技巧(一)架构层绕过Waf
0x00 前言
许多朋友在渗透测试中因为遇到WAF而束手无策,本人应邀,与godkiller一同写下此文,希望能够对许多朋友的问题有所帮助。
此系列一共分为五篇文章,分别如下:
一、架构层绕过WAF
l CDN WAF绕过
l 白名单应用
二、匹配资源大小限制
l 服务器端配置(Data MAX Length)
三、协议未正确解析
l HTTP不同的请求方法污染
l GET与POST的区别
l 文件上传
l HTTP参数污染(HPP)
四、发现WAF缺陷过程
l 绕过某WAF上传
l 绕过某WAF注入
l 自动化Bypass
l 思考
五、过滤/拦截规则不严谨
l 等价替换
l 大小写替换
l 不常用条件
l 特殊符号
l 编码
l 注释
0x01 CDN WAF绕过
CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,CDN系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。 --来源"百度"
目前CDN服务的功能是越来越多,安全性也越加强悍,用户的每个请求都会被发送到指定的CDN节点上,最后转发给真实站点。这个过程就好像加了一道关卡,这个关卡提供了缓存、加速、防御的特点。
在渗透测试中,如果遇到了CDN站点,几乎许多测试请求都会被CDN拦截,甚至多次请求后,会被加入黑名单。这个CDN节点属于云端WAF,如果将数据直接发送给真实站点,那么也就没有CDN的处理了,整个防御就没有任何作用。
那么下面我来带给大家几个方法来绕过云端WAF。首先我们必须要查询到目标站点的真实地址才可以,这里的真实地址就指的是真实IP。以下几个方法只是个人之见,如果有遗漏或者缺点,请在文章评论指出……
第一个,查询域名历史DNS解析,网上有很多站点都可以查询站点的历史DNS解析。假设我在本月10号,域名绑定的服务器IP是199.199.199.***,在下月15号更换了服务器的IP,那么这个199.199.199.***可能就会被直接记录在历史记录中。再根据历史记录进行判断当前IP是否是现在的网站真实服务器地址。
[attachment=3855]
[font=-apple-system, 'Helvetica Neue', Arial, 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'WenQuanYi Micro Hei', sans-serif]第二个,查看子域名解析地址是否和主域名的IP地址相近。一般再查询域名是否存在CDN的话,我们可以看响应头、或者看解析记录,里面大多都有关于云端CDN的字眼。当然提倡写脚本,Kali Linux中也有工具 ~
技术交流QQ群: 397745473
来自:https://xianzhi.aliyun.com/forum/read/776.html?fpage=9
评论
发表评论