子域名劫持(Subdomain takeover)

学到了一个新的漏洞类型,记录学习下

0x01 域名解析

域名解析是由DNS协议完成的,包含了多种记录类型,比如:

  • A (Address) 记录:指明域名对应的哪个IP

  • NS记录:指明由哪台服务器对该域名进行解析

  • CNAME记录:别名记录,将一个域名映射到另一个域名的记录(比如:张晓明的小名叫小明,小名和晓明都是同一个人)

0x02 子域名劫持原理

怎么简单怎么说:

比如:子域名test.example.com通过CNAME记录指向一个比如testcdn.img.aliyun.com域名,但该主机名已经不存在或者过期了,这样我们就可以注册、创建一个这个不存在的testcdn.img.aliyun.com域名,达到子域名劫持的目的

0x03 漏洞检测

子域名劫持漏洞检测有三种方法:

1、使用dig、nslookup

1
2
3
4
5
6
7
8
9
10
11
12
# nslookup ping.ubnt.com 8.8.8.8
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
ping.ubnt.com canonical name = dl.ubnt.com.
dl.ubnt.com canonical name = d2cnv2pop2xy4v.cloudfront.net.
Name: d2cnv2pop2xy4v.cloudfront.net
Address: 54.192.96.244
# dig example.com | grep CNAME
example.com. 3027 IN CNAME example.cloudfront.net.

然后访问出现的CNAME记录值,如果显示不存在,那么Congratulations!

2、直接访问子域名

如果出现类似下面这种情况,那么Congratulations!

3、使用工具-aquatone

直接使用aquatone-takeover —d target.com即可

0x04 漏洞危害

1、认证劫持、钓鱼

由于攻击者已经控制了该子域名,那么攻击者就可以构造特定的页面诱导用户操作,比如登陆表单、密码表单等,由于是完全正常的可信的域名,所以很难以分别是否存在钓鱼。

2、会话劫持

这种对那些大型企业危害巨大,现在很多网站使用单点登陆(SSO),那么Cookie就是在整个域中共享的,那么攻击者只需要接受到用户的Cookie,即可操作其他域名了。

大爷,赏个铜板呗!