WAF你绕过去了嘛?没有撤退可言(手工)
WAF你绕过去了嘛?没有撤退可言
目录
(没有不透风的墙,办法总比困难多)
只要是基于规则的绕过,在工作的时候就有着天然的缺陷型,限制了WAF,防火墙等基于这种模式的防护作用的发挥,只要渗透测试者认真一点,发挥自己的脑洞,总能找到各种各样的绕过姿势。
触发WAF的情况
最常见的:
①扫描/访问的速度太快了,过快的进行扫描,不仅获得的信息是假的,还会被waf拦截。
②waf都有指纹记录识别,,特别是awvs等一些热门工具的工具指纹。
③漏洞payload的关键字也在waf的拦截字典里。
(道高一尺魔高一丈,比来比去,越学越多)
逻辑思维层面绕过
被代理的浏览器一定要导入所用工具的证书
方法一:旁路绕过
WAF设置的时候由于疏漏,针对http(80端口)和https协议(443端口)没有全部进行防护,因此,在URL中把http改为https进行相互改
方法二:针对云waf防护
查找到真实ip,绕过CDN防护(基本操作)
小国家服务器访问网站
结合公司注册地进行手工判断
(有的时候工具也不一定可靠,要多试几个,然后自己判断一下)
方法三:白名单
云WAF在配置中会选择“信任”部分数据包,这部分数据包不会进行匹配检验,在WAF里有一个白名单列表,符合白名单要求的,WAF就不会进行检测。如果把我们访问的数据包伪装成白名单上的数据包,就可以绕过WAF的检验。
①IP 白名单
有些网站不会对自己(即物理机上的操作)进行检验,因此,可以在数据包中设置X-FARWARDED-FOR头,或者是X-Originating-IP,设置为127.0.0.1,就能绕过WAF。
从网络层获取的 ip,这种很难伪造,需要满足的条件比较多,较难实现,即使对数据包进行了修改,也是不会接受的但。如果是获取客户端的 IP,就存在伪造 IP 绕过的情况。
修改 http 的 header
X-Forwarded-For
X-remote-IP
X-originating-IP
x-remote-addr
X-Real-ip
迷之事件,显示一个ok
②静态资源
特定的静态资源后缀请求,常见的静态文件(.js .jpg .swf .css .txt等等),类似白名单机制,waf 为了检测效率,不去检测这样一些静态文件名后缀的请求。
URL/sql.php/1.js?id=1 and 1=1
URL/index.php/1.txt?id=1 and 1=1
(Aspx/php 只识别到前面的 .aspx/.php 后面不识别)
(自我认为与工具爆破式测试相比,手工操作的逆向思维必不可少,再结合工具跑数据)
要实现的预期的结果(要有个方向)-------->对预期结果有影响的waf安全防护规则(知己知彼),并进行分析,-------->动动小脑瓜找绕过方法开始尝试
(1)要实现的预期的结果:
通过访问静态资源绕过waf,并能执行相关数据库语句
(2)了解相关waf安全防护规则
查询安全狗关于数据库操作相关检测规则
最多的就是检测URL、cookie、post的内容
很显然会对注入语句进行正则匹配,如果匹配到会进行拦截------>结合工具跑出识别不出来的情况
但是其默认的检测HTTP头是没开的
不绕过规则的结果------>被拦截
(3)动动小脑瓜找绕过方法开始尝试
①对post内容进行检测,说明可以尝试进行post内容进行提交
虽然没有被拦截,但是网站无法接收到post提交
POST不接收,那么只能考虑回到GET,或者改源码为request
(这里不存在表单提交啥的,所有可能就不接收POST提交)
(人间真实,状况百出)
回到GET,那么就要考虑使用各种注释符,替换等等方法绕过(现在就可以用工具代替手工了)
(爆破这方面还是交给工具和脚本解决吧)
③目录伪装绕过(url 白名单)
针对特定目录设置的白名单列表,如 admin/manager/system 等管理后台
检测数据包中是否含有指定的关键字符串判定,尝试构造含有这些指定目录字符串特性的数据包。
只要url中存在白名单的字符串,就作为白名单不进行检测。
常见的 url 构造姿势:
URL/index.php/admin?id=1
(呕吼,没拦截)
URL/index.php?a=/manage/&b=../etc/passwd
(这里不存在表单提交啥的,所有可能就不接收POST提交)
URL/../../manage/../sql.asp?id=2
(这个可能就要先把文件目录地图爬出来)
④爬虫白名单(自我认为用处相比较大)
站点为了提高在SEO上的排名,会设置对大型搜索引擎的爬虫不做检验(百度,谷歌啥的)
也就是说,如果把数据包中user-agent字段中替换成搜索引擎信息,就可以绕过WAF的检验
部分waf有提供爬虫表名单的功能,识别爬虫的技术一般有两种:
根据UserAgent,可以很容易欺骗,我们可以伪装成爬虫尝试爬过
通过行为判断
User Agent Switch(Firefox附加组件)
根据爬虫白名单里面的搜索引擎列表,在网上去查他们的user-agent字段
我搜了一下baidu的
PC端的是:
Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)
UA端的是:
Mozilla/5.0 (Linux;u;Android 4.2.2;zh-cn;) AppleWebKit/534.46 (KHTML,likeGecko) Version/5.1 Mobile Safari/10600.6.3 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)
产品名称 对应user-agent
网页搜索 Baiduspider
无线搜索 Baiduspider
图片搜索 Baiduspider-image
视频搜索 Baiduspider-video
新闻搜索 Baiduspider-news
百度搜藏 Baiduspider-favo
百度联盟Baiduspider-cpro
竞价蜘蛛Baiduspider-sfkr
(来自百度百科)
编写脚本绕过
或者使用pycharm运行python文件
- 点赞
- 收藏
- 关注作者
评论(0)