日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

公眾號(hào):白帽子左一
專注分享滲透經(jīng)驗(yàn),干貨技巧....

福利領(lǐng):見(jiàn)者有份|10余本書(shū)+滲透工具包,直接送!

很久之前就看過(guò)介紹子域名劫持的文章,可是一直沒(méi)有遇到過(guò),直到在最近的一次測(cè)試中真正遇到了,下面從什么是域名解析開(kāi)始,大體梳理一下子域名劫持漏洞的成因、挖掘思路、工具,最后通過(guò)一個(gè)真實(shí)的案例來(lái)將整個(gè)漏洞做一個(gè)梳理。

一.域名解析

域名解析也叫DNS解析,是將域名指向網(wǎng)絡(luò)中的IP地址。

訪問(wèn)網(wǎng)絡(luò)中的服務(wù)都需要獲取其IP地址才能訪問(wèn),但是記住不同的IP地址過(guò)于繁瑣,通過(guò)使用域名解析,可以使人們不用記住繁瑣的IP地址,而是可以通過(guò)一個(gè)通俗易懂的域名來(lái)訪問(wèn)相應(yīng)的網(wǎng)站。

在域名解析中,一個(gè)域名只能對(duì)應(yīng)一個(gè)IP地址,但是一個(gè)IP地址可以對(duì)應(yīng)多個(gè)域名。
用于解析域名的協(xié)議叫做域名解析協(xié)議,也就是DNS協(xié)議。

域名解析的過(guò)程

1、在瀏覽器中輸入www.ichunqiu.com域名,系統(tǒng)會(huì)先檢查自己本地的hosts文件是否有這個(gè)網(wǎng)址映射關(guān)系,如果有就先調(diào)用這個(gè)IP地址映射,完成當(dāng)前域名的解析。


2、如果hosts里沒(méi)有這個(gè)域名的映射,則查找本地DNS解析器緩存,是否有這個(gè)網(wǎng)址映射關(guān)系,如果有,直接返回,完成域名解析。


3、如果hosts與本地DNS解析器緩存都沒(méi)有相應(yīng)的網(wǎng)址映射關(guān)系,首先會(huì)找TCP/IP參數(shù)中設(shè)置的首選DNS服務(wù)器,在此我們叫它本地DNS服務(wù)器,此服務(wù)器收到查詢時(shí),如果要查詢的域名,包含在本地配置區(qū)域資源中,則返回解析結(jié)果給客戶機(jī),完成域名解析,此解析具有權(quán)威性。


4、如果要查詢的域名,不由本地DNS服務(wù)器區(qū)域解析,但該服務(wù)器已緩存了此網(wǎng)址映射關(guān)系,則調(diào)用這個(gè)IP地址映射,完成域名解析,此解析不具有權(quán)威性。


5、如果本地DNS服務(wù)器本地區(qū)域文件與緩存解析都失效,則根據(jù)本地DNS服務(wù)器的設(shè)置(是否設(shè)置轉(zhuǎn)發(fā)器)進(jìn)行查詢

如果未用轉(zhuǎn)發(fā)模式,本地DNS就把請(qǐng)求發(fā)至13臺(tái)根DNS,根DNS服務(wù)器收到請(qǐng)求后會(huì)判斷這個(gè)域名(.com)是誰(shuí)來(lái)授權(quán)管理,并會(huì)返回一個(gè)負(fù)責(zé)該頂級(jí)域名服務(wù)器的一個(gè)IP。

本地DNS服務(wù)器收到IP信息后,將會(huì)聯(lián)系負(fù)責(zé).com域的這臺(tái)服務(wù)器。

這臺(tái)負(fù)責(zé).com域的服務(wù)器收到請(qǐng)求后,如果自己無(wú)法解析,它就會(huì)找一個(gè)管理.com域的下一級(jí)DNS服務(wù)器地址(ichunqiu.com)給本地DNS服務(wù)器。

當(dāng)本地DNS服務(wù)器收到這個(gè)地址后,就會(huì)找ichunqiu.com域服務(wù)器,重復(fù)上面的動(dòng)作,進(jìn)行查詢,直至找到www.ichunqiu.com主機(jī)。


6、如果用的是轉(zhuǎn)發(fā)模式,此DNS服務(wù)器就會(huì)把請(qǐng)求轉(zhuǎn)發(fā)至上一級(jí)DNS服務(wù)器,由上一級(jí)服務(wù)器進(jìn)行解析,上一級(jí)服務(wù)器如果不能解析,或找根DNS或把轉(zhuǎn)請(qǐng)求轉(zhuǎn)至上上級(jí),以此循環(huán)。不管是本地DNS服務(wù)器用是是轉(zhuǎn)發(fā),還是根提示,最后都是把結(jié)果返回給本地DNS服務(wù)器,由此DNS服務(wù)器再返回給客戶機(jī)。

CNAME解析

在DNS協(xié)議中,存在多種記錄類型,比如最常見(jiàn)的A記錄是把某個(gè)主機(jī)名解析到服務(wù)器的IP;

NS記錄:域名服務(wù)器記錄,如果需要把子域名交給其他DNS服務(wù)商解析,就需要添加NS記錄;

CNAME記錄:是主機(jī)名到主機(jī)名的映射,比如你擁有aaa.com和bbb.com,

你想把對(duì)aaa.com的訪問(wèn)指向到bbb.com,就可以通過(guò)C記錄,

當(dāng)訪問(wèn)aaa.com時(shí),會(huì)解析到bbb.com,然后通過(guò)A記錄,解析到了bbb.com的IP地址。

二.子域名劫持漏洞成因

子域名劫持的前提就是使用了CNAME解析,一些服務(wù)提供商會(huì)在提供服務(wù)的時(shí)候提供一個(gè)域名用來(lái)訪問(wèn)相應(yīng)的服務(wù)

例如在Shopify上申請(qǐng)了服務(wù),它給你分配了test.shopify.com作為你的服務(wù)的地址

但是你已經(jīng)有自己的域名了,想讓其他人通過(guò)你的域名來(lái)訪問(wèn)自己注冊(cè)的服務(wù)

那么可以通在自己aaa.com上增加CNAME記錄來(lái)實(shí)現(xiàn),

例如添加了一個(gè)shop.aaa.com的子域名,類型為CNAME,

類型記錄為test.shopify.com

這時(shí)用戶訪問(wèn)shop.aaa.com會(huì)解析到test.shopify.com。
 

如果有一天開(kāi)通的服務(wù)到期了,或者是關(guān)閉了服務(wù),而沒(méi)有在域名上刪除相應(yīng)的CNAME記錄

這時(shí)攻擊者自己申請(qǐng)一個(gè)test.shopify.com的服務(wù)域名并且放上自己的內(nèi)容,那么當(dāng)用戶訪問(wèn)shop.aaa.com時(shí),訪問(wèn)的就是攻擊者的頁(yè)面。

對(duì)于用戶而言,shop.aaa.com是一個(gè)可信的域名,對(duì)于這個(gè)域名的信任導(dǎo)致攻擊者可以對(duì)用戶實(shí)施釣魚(yú)攻擊。

從另一方面來(lái)說(shuō),如果網(wǎng)站使用了單點(diǎn)登錄,并且Cookies在整個(gè)域中共享,攻擊者可以通過(guò)誘導(dǎo)用戶訪問(wèn)具有子域名劫持的域名來(lái)獲取用戶的Cookies。

 

綜合上面來(lái)看,形成子域名劫持需要的前提條件是

  • 子域名shop.aaa.com存在CNAME記錄,并且指向另一個(gè)域,例如test.shopify.com
  • test.shopify.com過(guò)期或者服務(wù)關(guān)閉,其他用戶可以在服務(wù)提供商申請(qǐng)當(dāng)前域名
  • shop.aaa.com沒(méi)有刪除之前的CNAME記錄

 

三.DNS記錄查詢工具

通過(guò)上面成因的講解,可以了解到要存在子域名劫持漏洞,首先需要有CNAME記錄。

對(duì)于一個(gè)已知的子域名,例如shop.aaa.com,可以通過(guò)查看該子域名的DNS記錄來(lái)判斷是否具有CNAME記錄,這里可以使用的查詢命令有nslookup、host,dig

 

nslookup命令

用來(lái)查詢DNS的記錄,查看域名解析情況

可以使用[nslookup 子域名 dns-server]來(lái)直接查詢域名的解析情況,例如

一次成功的子域名劫持

 

使用 [nslookup -qt=type 子域名 dns-server] 來(lái)查詢特定類型的記錄,例如查詢CNAME記錄

一次成功的子域名劫持

 

上面命令后面的dns-server是使用的DNS服務(wù)器,不加的時(shí)候是使用默認(rèn)的DNS服務(wù)器,可以自己指定,例如使用8.8.8.8

一次成功的子域名劫持

 

host命令

host 命令是常用的分析域名查詢工具,是一個(gè) DNS 查找實(shí)用程序,用于查找域名的 IP 地址。

它還執(zhí)行反向查找,查找與 IP 地址關(guān)聯(lián)的域名。
語(yǔ)法格式

host [OPTIONS] {name} [server]

用法

host: illegal option -- h
Usage: host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
            [-R number] [-m flag] [-p port] hostname [server]
       -a is equivalent to -v -t ANY
       -A is like -a but omits RRSIG, NSEC, NSEC3
       -c specifies query class for non-IN data
       -C compares SOA records on authoritative nameservers
       -d is equivalent to -v
       -l lists all hosts in a domain, using AXFR
       -m set memory debugging flag (trace|record|usage)
       -N changes the number of dots allowed before root lookup is done
       -p specifies the port on the server to query
       -r disables recursive processing
       -R specifies number of retries for UDP packets
       -s a SERVFAIL response should stop query
       -t specifies the query type
       -T enables TCP/IP mode
       -U enables UDP mode
       -v enables verbose output
       -V print version number and exit
       -w specifies to wait forever for a reply
       -W specifies how long to wait for a reply
       -4 use IPv4 query transport only
       -6 use IPv6 query transport only

查詢www.baidu.com 的DNS記錄并顯示過(guò)程詳細(xì)信息

$ host -a www.baidu.com
Trying "www.baidu.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 49888
;; flags: qr rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.baidu.com.                 IN      ANY

;; ANSWER SECTION:
www.baidu.com.          0       IN      CNAME   www.a.shifen.com.

Received 74 bytes from 172.27.224.1#53 in 20 ms

查詢指定類型的DNS記錄

$ host -t CNAME www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.

dig命令

dig命令是用來(lái)查詢單個(gè)主機(jī)的信息

dig 命令默認(rèn)的輸出信息比較豐富,大概可以分為 5 個(gè)部分。

  1. dig 命令的版本和輸入的參數(shù)。
  2. 服務(wù)返回的一些技術(shù)詳情,比較重要的是 status。如果 status 的值為 NOERROR 則說(shuō)明本次查詢成功結(jié)束。
  3. "QUESTION SECTION" 顯示我們要查詢的域名。
  4. "ANSWER SECTION" 是查詢到的結(jié)果。
  5. 本次查詢的一些統(tǒng)計(jì)信息,比如用了多長(zhǎng)時(shí)間,查詢了哪個(gè) DNS 服務(wù)器,在什么時(shí)間進(jìn)行的查詢等等。
一次成功的子域名劫持

 


默認(rèn)情況下dig命令只查詢A記錄,可以在后面添加類型來(lái)查詢特定的類型

$ dig www.baidu.com CNAME

; <<>> DiG 9.16.6-Debian <<>> www.baidu.com CNAME
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53008
;; flags: qr rd ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;www.baidu.com.                 IN      CNAME

;; ANSWER SECTION:
www.baidu.com.          0       IN      CNAME   www.a.shifen.com.

;; Query time: 30 msec
;; SERVER: 172.27.224.1#53(172.27.224.1)
;; WHEN: Sun Jun 13 22:16:34 CST 2021
;; MSG SIZE  rcvd: 74

dig命令可以設(shè)置使用特定的DNS服務(wù)器來(lái)進(jìn)行查詢

$ dig @8.8.8.8 www.baidu.com

; <<>> DiG 9.16.6-Debian <<>> @8.8.8.8 www.baidu.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30073
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;www.baidu.com.                 IN      A

;; ANSWER SECTION:
www.baidu.com.          442     IN      CNAME   www.a.shifen.com.
www.a.shifen.com.       39      IN      CNAME   www.wshifen.com.
www.wshifen.com.        39      IN      A       103.235.46.39

;; Query time: 90 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jun 13 22:19:20 CST 2021
;; MSG SIZE  rcvd: 111

上面介紹的三個(gè)命令都是查詢域名信息的很強(qiáng)大的命令,子域名劫持漏洞的挖掘工具很多都是用到了這三個(gè)命令。

 

四.子域名劫持挖掘思路

想要發(fā)現(xiàn)子域名解析漏洞,首先需要挖掘收集目標(biāo)的子域名,并且密切關(guān)注這些子域名的變化

收集子域名的方式有很多,也有很多優(yōu)秀的工具可以進(jìn)行查詢,例如Oneforall、Layer子域名挖掘機(jī)、Subdomain3、Sublist3r等

還有一些其他的方法來(lái)進(jìn)行收集,例如在之前的文章中有介紹。

收集完成子域名后,有兩種方式來(lái)對(duì)這些子域名是否存在子域名劫持漏洞,一種思路是訪問(wèn)這些域名,根據(jù)網(wǎng)頁(yè)內(nèi)容進(jìn)行判斷。

例如頁(yè)面內(nèi)容如下時(shí),可能存在github子域名劫持

一次成功的子域名劫持

 

對(duì)于可能存在子域名劫持的頁(yè)面,這里有個(gè)項(xiàng)目已經(jīng)做了整理和收集,can-i-take-over-xyz對(duì)許多可能存在子域名劫持的頁(yè)面都進(jìn)行了整理,列出了其指紋以及相關(guān)的文章。

另外一個(gè)檢測(cè)的思路就是檢查域名的DNS記錄,如果存在可疑的記錄,那么就可以通過(guò)手工驗(yàn)證的方法是來(lái)檢測(cè)漏洞是否存在。

五.漏洞挖掘工具

sub404

Sub 404是一個(gè)使用Python編寫(xiě)的工具,利用異步方式批量檢查子域劫持漏洞。

它會(huì)批量查詢目標(biāo)URL的狀態(tài),通過(guò)404頁(yè)面的內(nèi)容來(lái)判斷是否具有子域名劫持漏洞,另外,它還會(huì)通過(guò)獲取CNAME來(lái)進(jìn)行檢測(cè),這個(gè)工具使用的前提是安裝了sublist3r 和 subfinder。

如果不想再另外安裝這兩個(gè)工具,可以使用Docker來(lái)運(yùn)行sub404。

Docker運(yùn)行方式

https://github.com/r3curs1v3-pr0xy/sub404.git
cd sub404
docker build -t sub404 .
docker run --rm sub404 -h

選項(xiàng)

描述

例子

-d

目標(biāo)的域名。

python3 sub404.py -d noobarmy.tech

-f

如果未安裝 subfinder,請(qǐng)?zhí)峁┳佑蛭募奈恢靡詸z查接管。

python3 sub404.py -f subdomain.txt

-p

為請(qǐng)求設(shè)置協(xié)議。默認(rèn)值為"http"。

python3 sub404.py -f subdomain.txt -p https 或 python3 sub404.py -d noobarmy.tech -p https

-o

將 sublist3r 和 subfinder 的唯一子域輸出到文本文件。默認(rèn)為"uniqueURL.txt"

python3 sub404.py -d noobarmy.tech -o output.txt

-h

顯示此幫助信息并退出

python3 sub404.py -h

docker run --rm sub404 -d xxxxx.com                                                                #這里使用docker方式運(yùn)行,并且只測(cè)試一個(gè)域名的子域名劫持漏洞
一次成功的子域名劫持

 

在運(yùn)行過(guò)程中可能會(huì)報(bào)一個(gè)錯(cuò)誤,這是sublist3r的報(bào)錯(cuò),主要是python版本問(wèn)題導(dǎo)致的。

可以忽略,也可以自己動(dòng)手改一下,這個(gè)工具是很厲害的,檢測(cè)速度也非常快,如果自己已經(jīng)收集了子域名,可以將子域名放到一個(gè)文本文件里,使用-f選項(xiàng)來(lái)檢測(cè)文件中的子域名。

NtHiM(https://github.com/TheBinitGhimire/NtHiM)

NtHiM同樣可以針對(duì)單個(gè)目標(biāo)和批量進(jìn)行測(cè)試

用法

選項(xiàng)

描述

例子

-H

顯示與使用相關(guān)的幫助

NtHiM -h

-t

掃描單個(gè)目標(biāo)

NtHiM -t https://example.example.com

-F

從文件掃描目標(biāo)列表

NtHiM -f 主機(jī)名.txt

-C

并發(fā)線程數(shù)

NtHiM -c 100 -f 主機(jī)名.txt

-v

啟用詳細(xì)模式

NtHiM -v -f 主機(jī)名.txt

-o

將輸出寫(xiě)入文件

NtHiM -f 主機(jī)名.txt -o 輸出.txt

-u

更新簽名緩存

NtHiM -u

-V

顯示版本信息

NtHiM -V

上面僅僅是列舉了兩個(gè)我在挖掘子域名劫持漏洞的兩個(gè)工具,還有不少其他的漏洞檢測(cè)工具具有類似的功能,甚至是可以自己根據(jù)經(jīng)驗(yàn)編寫(xiě)一個(gè)自動(dòng)化的驗(yàn)證工具。

 

六.子域名劫持漏洞實(shí)例

聲明:截至文章發(fā)出時(shí),該漏洞已提交廠商并且修復(fù)完成

在一次滲透測(cè)試過(guò)程中,獲得了要測(cè)試站點(diǎn)的主域名,這里就暫且用xxxxxx.com來(lái)表示

首先在資產(chǎn)收集的過(guò)程中,就收集了一些子域名

使用了一些比較常見(jiàn)的工具,例如Oneforall、Layer子域名挖掘機(jī),在獲取了大量子域名后想到了之前看過(guò)的子域名劫持漏洞

這里就用到了一些工具進(jìn)行測(cè)試,其中就有上面介紹的兩個(gè)工具,運(yùn)行工具測(cè)試后發(fā)現(xiàn)了一個(gè)提示具有漏洞的子域名,這里就叫hacker.xxxxxx.com,然后通過(guò)訪問(wèn),發(fā)現(xiàn)了一個(gè)網(wǎng)頁(yè)的提示信息如下圖所示

一次成功的子域名劫持

 

通過(guò)查看can-i-take-over-xyz中介紹的可能存在子域名劫持的頁(yè)面的提示信息

通過(guò)這個(gè)提示[https://github.com/EdOverflow/can-i-take-over-xyz/issues/46]可以判斷可以對(duì)其進(jìn)行劫持

另外使用dig命令查看hacker.xxxxxx.com的CNAME記錄,可以看到具有myshopify的cname記錄

一次成功的子域名劫持

 


然后嘗試對(duì)hacker.xxxxxx.com進(jìn)行子域名劫持,首先需要注冊(cè)一個(gè)myshopify的賬號(hào),這個(gè)網(wǎng)站提供的服務(wù)是收費(fèi)的,但是首次注冊(cè)可以試用幾天。

 

注冊(cè)好后創(chuàng)建一個(gè)shopify托管域名和頁(yè)面,假設(shè)這里創(chuàng)建的域名是test.myshopify.com,這個(gè)可以自己定義頁(yè)面的內(nèi)容,我就只寫(xiě)了一點(diǎn)可以驗(yàn)證的內(nèi)容,寫(xiě)好后修改頁(yè)面的信息,將其連接到hacker.xxxxxx.com

一次成功的子域名劫持

 


這里就將之前發(fā)現(xiàn)具有漏洞的域名寫(xiě)上,它會(huì)驗(yàn)證是否可以與這個(gè)域名連接,驗(yàn)證的方式就是查詢那個(gè)域名是否具有shops.myshopify.com的cname記錄。

一次成功的子域名劫持

 


修改保存后,就完成了對(duì)該子域名的劫持,這時(shí)去訪問(wèn)hacker.xxxxxx.com,訪問(wèn)到的就是自己創(chuàng)建的頁(yè)面的內(nèi)容。

一次成功的子域名劫持

 

七.總結(jié)

本文從域名解析的過(guò)程和子域名劫持漏洞產(chǎn)生的原因來(lái)大概的介紹了一下漏洞原理,

 

后面又通過(guò)對(duì)一些工具的介紹和挖掘思路的介紹來(lái)展示的挖掘該漏洞的方式和方法,最后通過(guò)實(shí)例,來(lái)對(duì)一個(gè)具有漏洞的子域名的驗(yàn)證過(guò)程做了詳細(xì)介紹。

 

子域名劫持的方式還有很多種,有的甚至可以對(duì)郵件內(nèi)容進(jìn)行劫持,但是由于那樣的接觸的不多,所以沒(méi)有做過(guò)多的介紹.

參考

https://www.freebuf.com/articles/web/183254.html
https://xz.aliyun.com/t/2414
http://blog.itpub.net/69990085/viewspace-2741950/
https://hackerone.com/reports/416474
https://github.com/EdOverflow/can-i-take-over-xyz
https://help.aliyun.com/document_detail/137913.html

作者:i春秋-W4rnIn9

分享到:
標(biāo)簽:劫持 域名
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定