溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

dns泛解析及代碼測(cè)試

發(fā)布時(shí)間:2020-07-10 16:18:53 來(lái)源:網(wǎng)絡(luò) 閱讀:1576 作者:z2pp 欄目:安全技術(shù)

0x00 前言


在自己的掃描器開(kāi)發(fā)過(guò)程中,掃描器當(dāng)中自然包括了子域名收集功能,但在遇到泛解析的網(wǎng)站時(shí),也增加了掃描器很多不必要的檢測(cè),導(dǎo)致效率和資源的浪費(fèi)。本文中主要針對(duì)掃描器遇到的問(wèn)題進(jìn)行解決并優(yōu)化。

泛域名解析介紹 https://baike.baidu.com/item/%E6%B3%9B%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/9845966?fr=aladdin

0x01 問(wèn)題產(chǎn)生


泛解析的功能為廠(chǎng)商提供了便利,但為自動(dòng)化掃描帶來(lái)了麻煩,什么麻煩呢?這里以一個(gè)使用了泛解析的廠(chǎng)商作為演示
dns泛解析及代碼測(cè)試
由于該網(wǎng)站使用了泛解析,導(dǎo)致原本不存在的子域名也會(huì)成功被解析,那么其實(shí)訪(fǎng)問(wèn)這個(gè)域名,會(huì)重定向到主頁(yè)

dns泛解析及代碼測(cè)試

那么在自動(dòng)化掃描中,通常我們會(huì)使用到一個(gè)字典組合域名的方式,然后進(jìn)行dns解析,如果成功解析說(shuō)明子域名存在,利用這種方式來(lái)進(jìn)行子域名窮舉,但使用泛解析的話(huà),則會(huì)導(dǎo)致所有的域名都能成功解析,使得子域名窮舉變得不精準(zhǔn)。

dns泛解析及代碼測(cè)試

ps:只是一個(gè)泛解析測(cè)試

0x02 解決方法


那么怎么去判斷域名使用了泛解析和如何解決掃描器中遇到這種情況呢?

  • 泛解析的域名會(huì)自動(dòng)匹配所有*.域名的解析,利用這點(diǎn)我們可以故意去解析一個(gè)根本不可能存在的域名,如果能成功解析代表使用泛解析,否之未采用
    dns泛解析及代碼測(cè)試

    dns泛解析及代碼測(cè)試

  • 掃描器解決思路也同上點(diǎn),附上演示過(guò)程,(具體代碼最后貼)
    dns泛解析及代碼測(cè)試
    dns泛解析及代碼測(cè)試
    上圖中可以看到,如果能成功解析不存在的域名則使用泛解析,那么socket.getaddrinfo也不會(huì)拋出異常
    那么改進(jìn)后的檢測(cè)代碼為
import socket
import sys
def dns_resolve(domain):
    url = 'abc1q2w3e4r5t.' + domain
    flag = False
    #拋出異常說(shuō)明使用了泛解析
    try:
        socket.getaddrinfo(url, None)
        flag = True
    except:
        pass
    if not flag:
        print('[+] %s 未采用泛解析'%domain)
    else:
        print('[-] %s 采用泛解析'%domain)

if __name__ == '__main__':

    if len(sys.argv) < 2:
        print('python3 %s <domain>'%sys.argv[0])
        exit(1)

    dns_resolve(sys.argv[1])

dns泛解析及代碼測(cè)試

0x03 tips


  1. 當(dāng)域名使用了泛解析,那么放棄窮舉的方式來(lái)獲取子域名,可通過(guò)其他途徑,類(lèi)似爬蟲(chóng)或者搜索引擎來(lái)獲取
  2. 如有錯(cuò)誤,請(qǐng)斧正
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI