事件背景

一天晚上下班走在路上,突然收到老板的消息,说是有个外挂网站example.com需要溯源到真实IP地址,手机访问了一下发现首页就是让输入密码,当时刚下班一会,于是我抓紧时间冲进地铁回到家里准备开始"愉快"的加班生活。

分析过程

  • 多地ping
    拿到网站后,我打开了ipip.net使用多地ping发现国内响应的IP地址多达20多个,经过一番调查发现在国内这个网站使用的某度的CDN。

    想着这个网站可能在国外没有使用CDN,于是使用国外节点进行多地ping了一下,没想到这个网站在国外也使用了CDN,用的是cloudflare,对于cloudflare网上有个网站 Hiding behind CloudFlare 有机率可以找到真实IP地址,我根据教程查了一下没找到,后面确认了一下这些IP地址确实是cloudflare的CDN节点。

    多地ping基本没找到太多有用的信息,于是我打算换个思路。
  • dnsdb
    经过了一波ping操作后,我发现这个网站在全球都使用了CDN不太好找到,我开始查该域名的历史解析IP地址,主要用的dnsdb这个用起来还不错数据比较全。查询后发现解析的A记录包括子域名有1800多个,崩溃了。但是我发现它这个网站和子域名都是解析到19*.*.*.*这个地址,感觉可能真实IP就在这个段,后面经过扫描端口、查询这些IP线索发现并不真实IP基本都是CDN节点,IP的反向解析的域名记录上万条被我就排除了。
  • 网站着手
    在尝试了常规方法没东西于是打开网站想从网站着手,如果能找到漏洞之类的说不定能突破,网站打开就需要登录输入密码,界面很简单就一个输入密码的框。

    习惯性的右键查看源码发现了源码中存在两个外链,并且都能正常访问指向两个不同的网站,这里称它们为aa.combb.com吧。

    aa.combb.com两个网站并没有密码在首页有说明默认密码是*****,于是我用这个密码登录了example.com成功登录,登录进去也有一样提示的默认密码,我基本确定了这几个网站都是同一个人的。

    aa.combb.com被我确认是没有CDN的,直接就是真实IP地址,当时用aa.combb.com解析出来的IP地址绑定example.com发现不能正常访问,到现在还是没找到example.com的真实地址。于是我登录进去,想找找有没漏洞发邮件的功能,无果。在抓包的时候我发现网站请求数据向子域aa.example.com发送请求,除了子域名之外还一直向另一个网站cc.com发送请求,并且请求的资源地址都是固定的。

    我研究了一下两个网站,结果是aa.example.com有CDN,cc.com和前面两个一样没有CDN。到现在基本确定这些网站都和主站相关,aa.combb.comcc.com都没有被CDN保护相当于有3个真实IP地址了。我将子域名aa.example.com与找到IP地址一一绑定访问,发现与cc.com的IP地址绑定后依然可以正常访问,基本确定子域名aa.example.comcc.com在同一服务器上,但是主站还是无法确定,到现在为止有aa.combb.comcc.comaa.example.com地址都确定了。
  • 最后的挣扎
    经过前面的挣扎有点累点根烟休息一下,休息完继续开心的加班。前面在dnsdb查询历史解析记录的时候数据太多只是大概排除了就没继续了,我还是想从子域名继续着手一下。想到万能的佛法于是登录网站手上正好有高级会员账号,哈哈。想查下这个有多少子域名,还好一共204条记录还都是今年的,看来他一直都在换域名。

    查询出来之后观察到响应头中的Server字段都是yunjiasu-nginx,看来这个站CDN配置的还是比较全面,当时突然想起佛法可以匹配header于是我把yunjiasu-nginx给排除了,没想到果然还是有漏网之鱼,排除之后204个关联子域名只剩下这最后一个叫它ff.example.com吧,解析地址12.*.*.*,而且响应的Server是Microsoft-IIS/7.5,和主站开发语言一样。

    ff.example.com使用全球ping发现均解析到12.*.*.*,看来这个站没使用CDN心里窃喜。我将主站与12.*.*.*绑定,清空dns缓存访问直接成功了,特意抓了数据包确认了IP地址能正常访问。

分析结果

目标example.comaa.example.comff.example.comaa.combb.comcc.com的真实IP地址,将整个过程编写成报告交差。