1.1. 判断是否存在CDN

d4m1ts_2019 d4m1ts_2021

1.1.1. 多地ping

如果没有使用CDN,则只会显示一个IP地址。

可以使用以下站点进行多地ping,

如图则不存在CDN image-20210831202610139

1.1.2. nslookup法

用国外的dns服务器

  • 如果返回域名解析对应多个 IP 地址多半是使用了 CDN
  • nslookup -qt=A h5.hunbei.com 8.8.8.8 用国外的可能会得到真实IP

    不存在:

image-20210831112235864

存在:

image-20210831113703368

1.1.3. IP反查域名

查看是否存在大量不相关的IP

如下图可以看出来是使用了CDN

image-20210901091223568

1.1.4. 观察header

  • 观察请求响应的返回数据的头部,是否有 CDN 服务商标识
  • 若 asp 或者 asp.net 网站返回头的 server 不是 IIS、而是 Nginx,则多半使用了nginx反向代理到 CDN

image-20210901093608312

1.1.5. 在线检测工具

image-20210901094139643

1.2. 寻找真实IP

1.2.1. 网络空间测绘引擎

zoomeye、fofa等,搜索站点相关信息,有一定几率能够获取到站点的真实IP

1.2.2. 二级域名法

由于部分CDN价格昂贵,所以一些重要的站点会使用CDN加速,而一些子域名则没有使用,且极有可能和主站在同一C段,这时候,就可以通过发现目标的子域名,从而根据IP来定位主域名的IP地址。

1.2.3. 邮箱

用目标邮件服务器发送邮件给自己(QQ邮箱)再查看邮件源码一定情况下可以找到真实IP(服务端和我们建立连接)

这里还有一个奇淫技巧,通过发送邮件给一个不存在的邮箱地址,比如 [email protected] ,因为该用户不存在,所以发送将失败,并且还会收到一个包含发送该电子邮件给你的服务器的真实 IP 通知。

  • RSS 订阅
  • 邮箱注册、激活处
  • 邮箱找回密码处
  • 产品更新的邮件推送
  • 某业务执行后发送的邮件通知
  • 员工邮箱、邮件管理平台等入口处的忘记密码

1.2.4. 海外ping

由于国内厂家可能只针对国内使用cdn,对海外没有铺设,导致通过通过海外的IP可以直接获取到真实IP。

可以使用:

进行查询

image-20210901100541926

1.2.5. DNS历史解析记录

以微步在线为例

找到站点

image-20210901095527356

判断存在CDN

image-20210901095537130

微步查询

image-20210901095550022

确认为真实IP

image-20210901095559956

这些很有可能就是在使用CDN之前留下的解析记录

1.2.6. SSL证书

在线

# 查询有效的证书
Certificates: parsed.names.raw: "baidu.cn" and tags.raw: trusted

# 注意
# 测试过程中,很容易陷入思维误区,认为 有效 的证书才是我们需要的,但其实并不一定,很多服务器配置错误依然保留的是 无效 的证书

sha1 签名反查IPV4

image-20210223153534665

命令行工具

  • openssl
openssl s_client -connect hao123.com:443 | grep subject
  • curl
curl -v https://hao123.com | grep 'subject'

1.2.7. 敏感文件泄漏

  • 服务器日志文件
  • 探针文件,例如 phpinfo
  • 网站备份压缩文件
  • .DS_Store
  • .hg
  • .git
  • SVN
  • Web.xml

1.2.8. 历史域名

  • 很多网站在发展的过程中,会更换域名,比如京东以前的域名是 360buy.com ,后来斥巨资购买了 jd.com 。
  • 网站在更换新域名时,如果将 CDN 部署到新的域名上,而之前的域名由于没过期,可能未使用 CDN,因此可以直接获得服务器 IP,所以,历史域名也是一个很重要的点。

1.2.9. 通过 XML-RPC PINGBACK 通信

  • XML-RPC 是支持 WordPress 与其他系统之间通信的规范,它通过使用 HTTP 作为传输机制和 XML 作为编码机制来标准化这些通信过程。
  • 在 WordPress 的早期版本中,默认情况下已关闭 XML-RPC,但是从3.5版本开始,默认情况下开启。
  • XML-RPC 支持 trackback 和 pingback。
  • 虽然 WordPress 启用了 REST API 来代替 XML-RPC ,不过 XML-RPX 不会过时的,放心大胆的使用就好,虽然 XML-RPC 这个技术很老了,但依然可以通杀很多网站。
POST /xmlrpc.php HTTP/1.1
Host: domain.com
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en,zh-CN;q=0.9,zh;q=0.8
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 323

<?xml version="1.0" encoding="UTF-8"?>
<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param>
<value><string>http://2vbis4.dnslog.cn</string></value>
</param>
<param>
<value><string>https://domain.com/</string></value>
</param>
</params>
</methodCall>

1.2.10. APP

  • 目标若存在APP,则APP可能通过IP直接与服务端进行通信,若最新版采用域名通信,也可尝试寻找历史版本进行分析。

历史版本宝贝一般很多

1.2.11. 漏洞

  • 如果目标网站本身存在漏洞的话,比如 SSRF、XXE、XSS、文件上传、命令执行等漏洞,或者我们找到的其他突破口,注入我们自己的带外服务器地址,然后在服务器上检查 HTTP 日志记录。
  • 应用本身的错误会造成当传递一些错误的参数值或者错误的地址时,内部会抛出异常,也就是日常所说的报错,关注报错点,经常会泄露一些真实的 IP 地址或者内网 IP 段。

1.2.12. 通过 virtual-host 碰撞

1.2.13. 通过 favicon.ico 哈希特征

  • favicon.ico 是现代浏览器在网页标题的左侧显示的一个小图标。
  • 该图标数据通常是从 https://anywebsite/favicon.ico 处获取的,浏览器会在浏览任何网站时自动请求它。
  • 因为可以通过计算 favicon.ico 的指纹哈希,然后去 shodan 等搜索引擎搜索与之相同的主机结果,从而进一步探测是否能挖掘出目标网站的真实 IP 地址。
  • 目前网络空间搜索引擎均支持

image-20210901100622559

1.2.14. 通过网页源码特征值

  • 在服务器源 IP 地址允许访问并且返回的也是类似的网站内容情况下,可以通过侦察页面源码中 JS 、CSS 、HTML 等一系列静态特征值,然后用 Shodan 、Zoomeye 、Censys 等搜索引擎进行匹配搜索,从而定位 IP 。

1.2.15. 通过域名备案信息广域探测(成功率高)

  • 针对目标域名,目标二级域名,如果都做了 CDN 的情况下,是不是就思路中断了呢?
  • 肯定不是。这里分享一个很少有人去关注的独门秘技。
  • 网站需要服务器,但是再土豪的公司,也不可能一个域名一台服务器,大多数情况下,都是多个域名业务,共用一台服务器。
  • 那么如果目标网站存在备案,可以查询其备案信息,收集该单位或者个人备案的其他网站域名以及其他子域,然后再进行一轮广域的探测,很有可能其中的某个边缘子域,没有做 CDN,就直接暴露了真实服务器的 IP 地址,然后再进一步验证该 IP 是否也是目标网站的真实 IP 。

1.3. 找到真实 IP 后如何使用

在获取到真实IP后,通过直接访问IP可能无法访问,那么此时提供2种思路进行解决

  • 通过修改 hosts 文件,将域名和 IP 绑定。(要是不会,不建议阅读此文。)
  • 如使用 burpsuite 测试,可以在 Project options ----> Connections ----> Hostname Resolution 中增加域名和 IP 记录。

image-20210901100807514

1.4. 参考

  1. https://github.com/bin-maker/2021CDN/blob/main/CDN%202021%20%E5%AE%8C%E5%85%A8%E6%94%BB%E5%87%BB%E6%8C%87%E5%8D%97%EF%BC%88%E4%B8%80%EF%BC%89.md
  2. https://www.anquanke.com/post/id/227818
  3. https://www.anquanke.com/post/id/231437
Copyright © d4m1ts 2022 all right reserved,powered by Gitbook该文章修订时间: 2021-12-27 15:22:58

results matching ""

    No results matching ""