了解一下waf的种类
目前市面上的Waf的形态可以简单分类为三种,分别为硬件Waf、软件Waf、云Waf
三种waf示意图
- 硬件WAF优缺点:
1.可承受较高的吞吐量;
2.防护范围大(由于硬件防火墙直接串联到了交换机,所以在同一个交换机下的所有服务器,都处于防火墙的防护范围之内)
3.价格对于中小企业来说过于昂贵…动辄便是几十万甚至几百万
软件WAF优缺点(目前最普遍使用):例如有d盾,绿盟,云盾等
1.廉价甚至免费
2.功能丰富, 如扫描恶意木马文件、防篡改、服务器优化、备份等等功能
3.要实现对每个请求的解析、识别,可能会存在占用服务器内存过多的情况
4.防护面不够大,应用层的防护有局限性。有可能因为某个部分不够安全,比如某一ip主机上,主域名网站是重点防护部分,最安全。但众多子域名和旁站里,只要一个网站防护没做好,导致服务器被getshell,那么就等于所有这ip上的网站被getshell了
- 有的管理员 不更新、配置不当,导致规则库陈旧、防护作用变弱.也就是说,需要专业的人员去维护
- 云waf(新兴):比如百度云加速、360 网站卫士以及知道创宇的加速乐等
部署简单,只需把网站的dns修改一下就可以让网站进入云waf防护范围内,甚至,不需要专门的安全人员维护更新
同时有CDN作用,提高网站访问速度
不够可靠。云Waf处理一次请求,需要经过DNS解析、请求调度、流量过滤等环节,只要有一个环节出现问题,或者遭遇ddos被打垮了,会导致网站无法访问。必要时,只能手动切换为原DNS来保证业务正常运行,防护作用就没有了,而域名解析需要一定时间,又会导致网站短时间无法正常访问
存在轻易被绕过的风险,因为是靠域名解析到云waf上,再由云waf过滤请求后发到真实ip来实现防御,一旦真实ip暴露,即被绕过
怎么判断是否为云waf?
有很多办法,ping命令,nslookup,等等,
介绍两种个人觉得比较准,而且方便的测试方法:
第一种办法:上http://ping.chinaz.com
从全国各地ping一下,从结果看就知道是单纯的CDN,云waf,或只是独立ip的站点
这个是独立ip的网站,各地ping出的ip相同
这个网站使用了加速乐CDN,加速乐即创宇盾,搜索后发现是云waf
第二种办法:用域名反查ip历史工具 https://toolbar.netcraft.com/site_report 查看域名曾经对应的ip,甚至能查看曾经的主机类型以及中间件
nginx中间件是做反向代理的,ip也在不断变化,基本上已经确定是用了cdn。
虽然nginx的ip没有用,但有的查询记录并不全是nginx做中间件的,从而可以看到曾使用的真实ip,也有可能就是现在的ip
如何寻找CDN背后的网站真实ip?
判断网站有云waf后,可以用很多种方法查找真实ip,
但目前并没有哪种方法是一定有效的,有时候只能都尝试一下,这里汇集了十种方法,仅供参考
1.用nslookup [域名] [国外dns服务器] 查询最近的dns记录
大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有几率会直接解析到真实IP。其实这个方法根本不用上国外vpn,可以使用国外dns查询域名,
所以只需要:
nslookup http://example.com + [国外dns],就行了,
例如:
nslookup https://example.com 8.26.56.26
不过要找冷门国外DNS才行,像谷歌的DNS 8.8.8.8 ,国内用的人越来越多了,很多CDN提供商都把谷歌DNS作为国内市场之一,所以,你查到的结果会和国内差不了多少。
不过,某些国内网站都会dns查询time out,看运气,但也会有一部分不会
2.查询历史dns解析,如https://dnsdb.io/zh-cn/search,同时我觉得这也是个搜集子域名的好工具,而且子域名也可能和主机在同一个服务器的,结果子域名真实ip泄露后,主域名真实ip也泄露了
3.用网站订阅邮件法查看真实ip:
用邮箱注册,接收邮件,查看原文,可以看到邮件服务所在服务器的地址。但是,有的用云waf的网站会把邮件服务器和web服务器分开,这样查询到的是邮件服务器的ip;有的用云waf的网站干脆不开放邮件注册。。。所以,可以一试,要运气。
首先在需要测试的网站下,查看有没有用邮箱注册的地方,填上自己的邮箱,接收邮件,以QQ邮箱为例:
然后查看邮件原文,便会看到这样的文字:
某些地方就可能暴露真实ip
引用网上的解释:“思路就是让服务器主动连接我们告诉我们它的IP,不过使用的是合法的服务,如RSS邮件订阅,很多网站都自带 sendmail,会发邮件给我们,此时查看邮件源码里面就会包含服务器的真实 IP 了”。
4.同样的,思路是让网站主动连接我们,所以也可以借助XSS,SSRF等等漏洞,看一下网站请求从何处来,但是,毕竟是在有云waf的情况下,这个办法实现起来就有点困难。。。不过可以说是一种低危变高危的方法
5.神器 fofa.so,搜索关键字,有时就会是网站真实ip,其他网络空间搜索引擎,如钟馗之眼,shodan,也值得尝试
6.上传文件或发送邮件时抓包查看,有时候会有真实ip暴露在数据包中。
7.ping 完整链接
部分厂商只会要求把 www.example.com cname到cdn主服务器上去,
然而www.example .com和example.com 是两条独立的解析记录 ,
所以ping example.com 有可能会出现真实ip
8.也可以在全球各地ping一下 example.com,如用网站:https://asm.ca.com/zh_cn/ping.php ,有可能会有收获
9.(不推荐)因为一般免费的云waf或者cdn的ddos防护流量只有几gb到几十gb,网上有人通过ddos对着CDN打,把cdn的ddos防护打挂了,网站管理员可能后续会按原本的ip去解析域名,就能暴露真实ip。但是按照前面所说的,这样会干扰到正常业务的展开,不好
10.最后要是都不行,试试Zmap 扫描器?这个扫描器号称扫描全互联网的ip,一个小时内即可完成…
需要先获取ip段,
Apanic提供了每日更新的亚太地区IPv4,IPv6,AS号分配的信息表:http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest
写爬虫匹配ipv4,CN的,有大概1w条
这个网站 https://www.ip2location.com/free/visitor-blocker 可以直接下载获取指定国家的ip段,但旧,大概只有6k条
- apnic|CN|ipv4|1.2.2.0|256|20110331|assigned 分别对应:
- 等级机构|获得该IP段的国家/组织|资源类型|起始IP|IP段长度|分配日期|分配状态
- 下载下来不需要管起始ip、ip段长度,删掉文件内容里除ip外的部分丢给zmap用就好
- 然后按照这个教程http://0535code.com/article/20170217_1688.shtml做下去就好,这里不展开说了
总结:目前收集了一些找cdn背后真实ip的方法,感觉只要管理员安全意识够好,比如配置云waf前换个ip,使得dns历史记录为空,还是可以避免真实ip暴露的,所以,我觉得要是仅仅配置云waf,没有专业安全人员维护,那可不行。。。