子域名接管漏洞是怎么回事儿

admin 2022年6月30日01:28:49SecIN安全技术社区子域名接管漏洞是怎么回事儿已关闭评论6 views1174字阅读3分54秒阅读模式

今天学习了下子域名接管漏洞,通过该漏洞可以接管目标子域名,让其显示我设置的任意页面,造成的危害,主要用于网络钓鱼,包括但不限于伪造钓鱼页面,还可以盗取 Cookie,伪造电子邮件等,具体风险可参考文章:

https://0xpatrik.com/subdomain-takeover/

接下来以实战的方式讲解造成这个漏洞的原因,首先在我的域名管理平台,给我域名 blog.xazlsec.com 设置一个 cname 记录:

子域名接管漏洞是怎么回事儿

接下来可以使用浏览器访问域名:

http://blog.xazlsec.com/

子域名接管漏洞是怎么回事儿

出现这个页面说明该域名解析已经生效,但是未配置网站,需要在 github 上进行操作, 创建网站项目并绑定域名,具体操作如下:

1、创建一个测试项目

子域名接管漏洞是怎么回事儿

2、新建的项目没有文件,可以创建一个文件内容为 Test by Xazlsecindex.html

子域名接管漏洞是怎么回事儿

3、打开 Settings,然后点击 Code and automation 下的 Pages 功能,并选择 Source 为 main:

子域名接管漏洞是怎么回事儿

点击保存之后,可以在 Custom domain``处选择自己的域名填入:

子域名接管漏洞是怎么回事儿

保存成功之后,就可以访问域名来查看 github 上的内容:

子域名接管漏洞是怎么回事儿

那么有人开始疑问,这跟子域名接管有啥关系?假如我不想用这个网站了,直接在 github 上把这个项目删除,但是 cname 记录没有一起删掉,会发生什么?

不知道的话,可以测试一下,当我删除新建的项目之后,打开域名,又出现了最开始没有配置时的页面,无论是谁,都可以在自己的 github 创建项目,在最后填写域名 blog.xazlsec.com,让其指向你的项目,从而实现子域名接管。

到这里,子域名接管的原理就应该知道了,因为域名曾经为了实现某个功能,设置了 cname 的记录,但是,当该功能下线后,忘记删除对应的 cname 记录,从而导致漏洞的出现。

我测试了大概一百个网站 cname 到 github.io 的网站,其中有 10 个网站访问出现 404,经最终测试,有三个域名可以实现接管,这么算下来有百分之三的概率成功。

以上是一个子域名接管的案例,有一个不错的项目,专门检测这类问题,应用场景不光是 github,还有其他平台:

https://github.com/jakejarvis/subtake

子域名接管漏洞是怎么回事儿

不同服务的利用方式,可以查看下面项目:

https://github.com/EdOverflow/can-i-take-over-xyz

子域名接管漏洞是怎么回事儿

除了这种利用知名服务的方式,假如我们 cname 指向的是自己的某个域名,比如 test.com,而这个域名,我们用来一年,后来没有需求,就没有续费,这个时候,如果有人抢注了这个域名,那么是不是也可以实现子域名接管的效果?

至于如何在实际的赏金行动中发现存在问题的子域名,其实也不难,需要收集足够多的子域名并且解析出 cname 记录,然后批量检测这些 cname 指向是否存在问题即可。

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月30日01:28:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  子域名接管漏洞是怎么回事儿 http://cn-sec.com/archives/1148845.html