CDN不是何绕用来防攻击的,它是何绕用来加速的。这个误区让无数站长在遭遇CC攻击时,何绕第一反应就是何绕“绕过CDN找源站IP”,方向从一开始就错了。何绕
真正的何绕绕过,分两种情况。何绕一种是何绕攻击者想绕过CDN直接打源站,另一种是何绕站长自己想知道源站IP是不是暴露了。我见过太多人拿着扫描工具乱扫一通,何绕扫出来的何绕全是CDN节点,白白浪费一晚上。何绕
先说最笨但最有效的何绕方法——历史DNS记录。CDN是何绕后来才套上去的,域名在接入CDN之前,何绕DNS记录里赤裸裸地写着源站IP。去SecurityTrails或者ViewDNS.info翻历史记录,输入域名,选个一年前的日期,很多老站直接就露馅了。我去年帮朋友排查一个被刷流量的站,就是靠这个办法,五分钟找到源站IP,对方用的是阿里云上海节点,一查一个准。
再看证书透明度日志。这个方法对用共享证书的CDN无效,但对那些自己上传SSL证书的站特别管用。crt.sh上搜域名,把返回的证书列表拉下来,看那些不是CDN签发的证书——如果有个证书的CN字段直接是源站域名,或者SAN里包含了奇怪的子域名,那个子域名很可能解析到源站。有个电商客户,他们的CDN配置只保护了www主域名,结果后台管理地址admin.shop.com直接暴露在公网,证书日志里写得明明白白。
子域名枚举也是条路。CDN通常只给主域名或特定子域名做加速,站长偷懒的时候,会把api、mail、ftp这些子域名漏在外面。用subfinder或者amass跑一遍,拿到子域名列表后逐个解析,凡是IP不归属CDN服务商网段的,基本就是源站。有个案例特别典型——某游戏官网套了Cloudflare,但他们的支付回调接口pay.gamesite.com没套,解析出来是个香港的独立IP,攻击者直接打那个IP,官网CDN形同虚设。
邮件头信息泄露源站IP,这招老但管用。很多站长的MX记录和A记录指向同一台服务器,或者邮件服务器和Web服务器在同一台机器上。给目标域名随便发一封不存在的账号的邮件,等它退信,看退信邮件头里的Received字段,里面会暴露服务器的真实IP。我测试过几十个站,成功率大概三成——前提是对方用的是自建邮件服务器,用企业邮箱的就没戏了。
还有个偏门办法——看SPF记录。TXT记录里的include:后面经常跟着源站的IP段,虽然不精确,但能缩小范围。配合Shodan搜索这个IP段,开放了80/443端口的IP就是候选目标。别小看这招,我见过有站长把SPF记录写成了include:spf.aliyun.com,结果整个阿里云IP段都被扫了一遍。
绕过CDN的本质不是技术对抗,而是信息泄露。站长自己用上面这些方法测一遍,如果全都能查到源站IP,那CDN配置就是失败的。真正安全的做法是源站IP只允许CDN节点访问——用防火墙白名单,而不是靠隐藏。毕竟,隐藏不是安全,只是延迟了被发现的时间。