In che modo un sito Web conosce il server DNS utilizzato da un client?

24

Esistono siti Web che dichiarano di eseguire "test di perdita DNS". Non mi interessa molto delle perdite DNS, ma sono curioso, come fa il sito web a sapere quale server DNS sto usando? Ho indovinato che sarebbe stata un'intestazione inviata nella richiesta HTTP ma non è stata in grado di trovarla.

Sito web di esempio: link

EDIT: ci sono molti altri esempi trovati attraverso una ricerca su google.

    
posta Craigxyz 13.07.2016 - 04:54
fonte

2 risposte

31

Questo è un trucco di risoluzione DNS che potrebbe anche essere eseguito utilizzando protocolli non http, ma in questo caso viene eseguito utilizzando nomi host casuali e immagini a pixel zero tramite http.

Guarda il codice sorgente sulla pagina e vedrai una serie di sottodomini casuali di 10 caratteri richiesti per diversi URL. Questi sono nomi di host molto particolari che né il tuo computer o il tuo ISP, né, ancora più importante, il tuo provider DNS, avranno memorizzato nella cache del DNS locale.

Quando i nomi host di questi URL univoci colpiscono il provider DNS, devono quindi richiederli al sito Web delle società di test che quindi mette in correlazione l'indirizzo IP del proprietario facendo la richiesta DNS univoca e poi ti avvisa del nome della società che ha effettuato la richiesta tramite un rapido ricerca

Elenco di nomi host randomizzati tutti per lo stesso dominio

ixc9a5snm4.dnsleaktest.com
rhl50vm36o.dnsleaktest.com
4xov3y3uvc.dnsleaktest.com
2n5t99gbzp.dnsleaktest.com
6mzklkved4.dnsleaktest.com
d6z20e9c2x.dnsleaktest.com

può essere trovato nel seguente html (i nomi degli host saranno diversi)

<img width=0 height=0 src="https://ixc9a5snm4.dnsleaktest.com">.<imgwidth=0height=0src="https://rhl50vm36o.dnsleaktest.com">.
<img width=0 height=0 src="https://4xov3y3uvc.dnsleaktest.com">.<imgwidth=0height=0src="https://2n5t99gbzp.dnsleaktest.com">.
<img width=0 height=0 src="https://6mzklkved4.dnsleaktest.com">.<imgwidth=0height=0src="https://d6z20e9c2x.dnsleaktest.com">.
    
risposta data 13.07.2016 - 05:23
fonte
13

Non lo sapevo. Estremamente interessante. Sembra funzionare cercando di generare connessioni a sottodomini casuali lunghi che controlla e può probabilmente raggruppare le richieste di risoluzione del dominio dal server DNS chiamante.

Fig.1:Elencodellerichiesteavviatedalbrowserchehaavutoesitonegativo

Sottoilcofanoèilmonitoraggiostandardutilizzandoungeneratorediimmaginididimensionizero:

<preclass="progress">Query round Progress... Servers found
        <br/>&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <img width=0 height=0 src="https://1k9oraud8h.dnsleaktest.com">.<imgwidth=0height=0src="https://dajo0hwg9c.dnsleaktest.com">.
        <img width=0 height=0 src="https://6crg9z68gj.dnsleaktest.com">.<imgwidth=0height=0src="https://nwitgnyo7r.dnsleaktest.com">.
        <img width=0 height=0 src="https://z3yine4a7p.dnsleaktest.com">.<imgwidth=0height=0src="https://2tvxmp2yd5.dnsleaktest.com">.
    </pre>

È interessante notare che poiché ho piwik (il motore di analisi utilizzato) bloccato per impostazione predefinita, tutte le richieste non sono riuscite, ma i miei server DNS sono stati ancora identificati, il che significa che si affidano a più di un semplice tracker HTTP.

Aggiunta di chiarimenti per rispondere alla domanda @ Falco.

Probabilmente le immagini non verranno caricate per tutti, poiché i sottodomini non esistono. Quindi, le richieste non vengono mai generate (ricerca DNS non valida) come si può vedere dai seguenti screengrabs. L'unica differenza nel mio caso è che non ricevono un ID di tracciamento.

Fig2:ilnomedidominiononvienemairisoltopernessunodeisottodomini

Fig3:QuindilerichiesteHTTPnonsonomaifattedalbrowser

Dalmomentochenonpossoaccederealback-end,stosolocercandodicapirecosasuccededietrolascena.ProbabilmentehannounganciosulloroserverDNSchescrivel'IPdiorigineperogni Domanda DNS ricevuta nel loro DB (forse questo thread fa anche il nome host e la ricerca dell'ISP prima di salvare i dati). Si noti che questa è una domanda DNS e mai una ricerca HTTP materializzata. L'unica cosa che il server Web centrale deve fare è restituire la riga corrispondente ai domini di sud associati al mio browser.

Il modo più semplice sarebbe una corrispondenza uno-a-uno con l'ID di tracciamento. Normalmente, invia un cookie di tracciamento piwik con un nome come pk_id e alla fine c'è una richiesta extra a piwik.php con molti dettagli di tracciamento. Nel mio caso questo cookie non viene mai stabilito e l'hop extra non viene eseguito. Non vedo nessun'altra identificazione di sessione che accada, la guarderò più da vicino nel fine settimana se la comunità non ha scavato dentro.

    
risposta data 13.07.2016 - 05:23
fonte

Leggi altre domande sui tag