渗透测试信息搜集阶段:了解CDN对获取目标网站真实IP的影响
0x01 前言

在渗透测试的信息搜集阶段,搜集到目标主站后,常常需要获取对方网站的真实IP以作进一步信息搜集,然而目前主流网站大多部署了CDN,它会将资源部署分发到边缘服务器,以此实现均衡负载,降低网络堵塞,从而使用户能更快访问自己的网站 。
CDN的全称为Content Delivery Network,也就是内容发布网络,它是构建于现有网络基础上的智能虚拟网络,依靠部署在各地的边缘服务器,借助中心平台的负载均衡、内容分发、调度等功能模块,能使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率 。CDN的关键技术主要有内容存储和分发技术。(百度百科)
CDN在给用户带来便捷的情况下,也给安全人员带来了更大挑战,要是网站存在CDN,那么你所拿到的IP是一个分发的虚拟节点,在这个节点搜集的信息基本是无用的,所以,我们必须绕过CDN去找到网站的真实IP。
0x02 判断CDN的存在
那么我们要如何判断一个网站是否存在一个CDN呢?
•1、CMD命令
使用nslookup命令进行检测,若返回的域名解析对应多个IP地址,那么多半是使用了CDN。
•2、利用在线网站
http://www.17ce.com
http:/ping.chinaz.com
http:/ping.aizhan.com
http://ce.cloud.360.cn
利用在线网站对全国多个地区进行ping服务器操作,接着对比每个地区ping出的ip结果,查看这些ip是否一致,若都一样,极有可能不存在CDN,若ip大多不同或规律性不强,可尝试查询这些ip的归属地,判断是否存在CDN。以http:/ping.chinaz.com为例,去ping百度搜索的ip,这种情况存在CDN的几率很大。
•使用各种在线工具帮助检测目标网站是否使用了CDN
推荐网址
http:/这并不是一个完整的句子,无法按照要求进行改写,请提供完整的语句。
http://www.ipip.net/ip.html
0x02绕过CDN寻找真实IP
•1、同国家IP地址访问查询
假设网站属于美国,当你用本地IP去访问时,返回的是美国CDN返回的IP,然而当你使用美国本土的IP时,它有可能返回真实IP 。
目标服务可能在主站上做好了相应的CDN,然而因种种原因,比如部署费用过高,或者对二级域名不上心等,致使二级域名未部署到CDN,此时我们可从这个方面着手查询。利用子域名搜集工具等搜集到足够的子域名后,就能通过子域名进行真实IP的搜集
使用phpinfo.php,或者使用php探针,去查看泄露的信息。
在开发网站期间,开发者有可能因一时疏忽,忘记处理像php探针这类可能会泄露信息的内容,从而给我们留下可乘之机。
通过谷歌语法去搜集
在网址中包含phpinfo.php,在网址中包含xxxxxx 。
查询域名的解析记录,可通过查看IP与域名绑定的历史记录来进行,在此过程中,可能会存在使用CDN前的相关记录,相关查询网站有:
https://dnsdb.io/zh-cn/ ###DNS查询
https:在//x.threatbook.cn/ 这个地方,有微步历史DNS记录,直接在搜索框进行搜索即可。
http://toolbar.netcraft.com/site_report?url= ###在线域名信息查询
http://viewdns.info/ ###DNS、IP等查询
https://tools.ipip.net/cdn.php ###CDN查询IP,也可以大致分析出目标的真实IP段。
https://ipchaxun.com/
•5、利用fofa等搜索引擎
在网页中将title标签提取出来,然后fofa搜索框
title = "xxxxxxx"
查到的ip能够拿去和微步的DNS历史查询作对比,常见的有以前的钟馗之眼、shodan、fofa搜索。以fofa为例,只需输入:title:“网站的title关键字”,或者body:“网站的body特征”,就能够找出fofa收录的有这些关键字的ip域名,很多时候可以获取网站的真实ip
•6、利用邮箱反查
很多网站设有忘记密码功能,国内网站大多能通过注册账号,借助忘记密码获取一封来自网站邮件服务器的邮件,国外网站大多有 RSS 订阅服务,绑定邮箱订阅也能获得邮件,若不想暴露邮箱,可利用临时邮箱搜集 。
申请临时邮箱,利用临时邮箱去注册账号
临时邮箱中会得到一封带有验证码的邮件
此时查看一下原文可得来自邮件服务器的IP:
这种方法其实非常费时费力,若实在没有突破口,便可以进行信息搜集,可借助扫描脚本来搜集,这就是扫全网的方法 。
参考脚本
https:全网扫描脚本,位于github.com/boy-hack/w8fuckcdn
https:github.com/Tai7sy/fuckcdn的E语言版本
总结
在实际测试里,所遇到的主站大多都存在CDN,因此,要找到站点服务器的真实IP就变得格外重要了。