1. 程式人生 > >一個DNS資料包的驚險之旅

一個DNS資料包的驚險之旅

踏上旅程

“小子,快去查一下www.paypal.com的IP地址,我急用,晚了我弄你!”,暴躁老哥一把關上了門,留我一個DNS資料包在冷冰冰的房間。

過了一會兒,一位大叔打開了門,帶著我來到了一座叫tcpip大廈。
“等我一下啊,我馬上回來”,大漢走進了這座大廈。

 

這時,我看到旁邊另外有一個DNS資料包也在等著。
“Hi,你查什麼域名呢?讓我看看”,我上前打招呼。

 

他沒有搭理,反而後退了幾步,躲開了我。

這一來,我反而更好奇了!我老遠瞟了一眼,只看到了部分:

這域名長的好生奇怪,在我的職業生涯還從未見過如此長如此怪異的域名。


沒過多久,大叔提著一個箱子走了出來,箱子正面寫了三個字母:UDP。

“進箱子裡去吧!”

“這個箱子也太寒酸了一點吧,才8個位元組。你看旁邊那位大叔提的TCP箱子多華麗,多厚實,足足有20個位元組,能不能換一個?”

 

“人家是HTTP資料包,你是個DNS資料包,沒那個命!不由得你選擇,快進去吧,少廢話”。

“王侯將相寧有種乎?DNS資料包就不配擁有TCP的箱子嗎,我不服!”

“那倒也不是,其實也是可以的,只不過這一趟沒機會了”

“咦?真的?”“快走了,廢話可真多!”

接著,大叔又給我套了一個叫IP的箱子,把我帶到網路碼頭,過了海關後,我就被髮送了出去。

 

遞迴解析

很快我就來到DNS伺服器。


“歡迎光臨,請問需要打聽點什麼?”,一個留著絡腮鬍的老頭接待了我。

“老闆您好,我奉主人之命,想查一下www.paypal.com的IP地址”

“額,我不知道這個域名的地址”

“啊,我家主人說你知道啊,專程讓我來問你”

“小兄弟別急,我不知道,但我可以幫你問問大宗師,他或許知道!”

“大宗師?他是誰”

“大宗師就是根域名伺服器,遍佈整個位元宇宙,總共13位大宗師,天下之事無所不知無所不曉”

“為什麼是13位大宗師?”

“我沒工夫給你解釋,這有個地址:為何根域名伺服器只有13個?,你先看著,我去幫你打聽,稍候片刻”

片刻之後,老闆果然回來了

“怎麼樣老闆,大宗師告訴你www.paypal.com地址了嗎?”

“開什麼玩笑,大宗師何等尊貴身份,怎麼會告訴我這些小網站的地址。”

 

“啊,那怎麼辦?”

“他倒是告訴了我一代長老.com的地址,讓我去問問他。”
“一代長老又是什麼?”

“一代長老就是頂級域名伺服器,你所查的www.paypal.com就是歸屬.com這位一代長老管轄範圍的,我再去問問他,他或許知道”

 

又過了一會兒,老闆再次回來。

“怎麼樣老闆,這次該有結果了吧!”

“容我喝口水”,大叔氣喘吁吁的說。

“.com長老也不知道,不過他告訴了我負責paypal.com的二代長老地址,我還要再去問問他”

“還有二代長老!你們這不會是個傳銷組織吧!”

“小兄弟可不要胡言,再這樣我不幫忙了”

“老闆我錯了,麻煩您再跑一趟”

老闆又去了一會兒

“查到了,小兄弟,二代長老總算知道www.paypal.com的地址了!”,大叔一邊喊著,一邊朝我跑來。

“太好了!快發給我家主人”

只見老闆一頓操作猛如虎,構建了一個DNS響應包,然後指著我一點,我的靈魂居然來到了這個響應包上。

“小兄弟,坐好了,送你回去覆命了!”,老闆推了我一把,把我發了出去。

 

半路遇險

沒多久,就被人接收了,沒想到回去的路走得比我來時更快。

不過我很快發現,這裡不是我原來所在的Windows帝國啊!我有點慌,不知所措。

“小哥,累了吧,來喝口水歇息歇息再趕路吧,我們這裡是路由器”,一位美麗的姑娘出現在我面前。

“多謝姑娘,那我就不客氣了”,一路奔波正好休息休息,之前經過那麼多路由器也沒人招待我歇息,這次是遇到好人了。

坐下喝了口水,環顧四周,發現和我之前經過的路由器繁忙的景象不同,這裡冷冷清清,並沒有什麼資料包來往。

心中湧上一股不好的感覺,此地不宜久留,還是速速趕路要緊。

剛起身要走,腦中一片眩暈,很快就兩眼一抹黑,不省人事。

不知道過了多久,醒來的時候我又在網路中傳輸了,剛剛發生了什麼一點印象也沒了,就好像做了一場夢一般。

 

再起疑雲

過了一會兒,終於回到了出發時的地方,熟悉的Windows帝國。

“你怎麼才回來,慢的要死!”,很明顯,暴躁老哥已經等得不耐煩了。

“DNS伺服器那老闆不靠譜,他也不知道,到處打聽才幫我問到的這個地址,所以回來的慢了些”。

“等一下,不對!”,老哥一下子眉頭緊鎖。

“什麼不對,IP地址錯了嗎?這老闆,問了半天居然給我問了個錯的”,我也有點生氣,害我白跑一趟。

“你回來的路上有沒有遇到什麼人?”

“沒有啊,我不記得我···”,話還沒說完,我突然想起那位神祕的姑娘,難不成她對我做了什麼?

 

“我什麼我,別吞吞吐吐的”

“我想起來了,中途遇到一位姑娘,請我歇息喝口水”,我只好如實交代。

“然後呢?”“然後喝完水我就暈了,不知道發生了什麼,醒了就又在網路傳輸中了,到底哪裡不對啊?”,我被弄糊塗了。

“這就對了!你是遇到劫道的了,對方肯定在你暈了之後,修改了你的內容,你的IP地址已經不能使用了”。

“你是怎麼知道我被改過啊?”,我非常好奇這一切究竟是怎麼回事。

“這要換做以前,被改了我還確實不知道,不過現在不一樣了,我們用上了DNSSEC技術,改沒改,一驗便知!”,老哥非常自豪的跟我說到。

“DNSSEC?這是個啥?”

 

“還在用DNS啊,又被劫持了吧?要不要試試我們的最新產品httpDNS?”,我還沒回過神,隔壁QB瀏覽器公司的胖虎不知何時跑了過來。

 

“httpDNS?這又是個啥?”,我和老哥異口同聲的問到。

 

未完待續·······

 

 

彩蛋

“老周,發現有可疑DNS請求,域名非常古怪”

“保持關注,去打聽一下是哪個程序,注意別打草驚蛇”

 

欲知後事如何,請關注後續精彩......

 

精彩回顧:

DDoS攻擊:無限戰爭

一條SQL注入引出的驚天大案

核心地址空間大冒險:系統呼叫

闖蕩Linux帝國:nginx的創業故事

一個HTTP資料包的奇幻之旅

遠去的傳說:安全軟體群雄混戰史

我是一個流氓軟體執行緒

產品vs程式設計師:你知道www是怎麼來的嗎?

位元宇宙-TCP/IP的誕生

我是一個IE瀏覽器執行緒

我是一個防毒軟體執行緒

我是一個explorer的執行緒

 

相關推薦

一個DNS資料驚險

踏上旅程 “小子,快去查一下www.paypal.com的IP地址,我急用,晚了我弄你!”,暴躁老哥一把關上了門,留我一個DNS資料包在冷冰冰的房間。 過了一會兒,一位大叔打開了門,帶著我來到了一座叫tcpip大廈。“等我一下啊,我馬上回來”,大漢走進

微控制器通訊接收一個完整資料

本篇博文最後修改時間:2017年05月15日 14:27。 一、簡介 本文以CC2541普通程式設計為例,介紹如何在CC2541中通訊接收到有效資料。 二、實驗平臺 電腦平臺:Windows7 64位旗艦 編譯軟體:IAR 硬體平臺:CC2541

DNS資料格式及內容詳解

1 域名解析過程 域名解析總體可分為兩大步驟,第一個步驟是本機向本地域名伺服器發出一個DNS請求報文,報文裡攜帶需要查詢的域名;第二個步驟是本地域名伺服器向本機迴應一個DNS響應報文,裡面包含域名對應的IP地址或者別名等。從下面對jocent.me進行域名解析的報文中可明顯看出這兩大步驟。注意:

串列埠協議的制定以及串列埠中怎樣接收一個完整資料的解析

裡以串列埠作為傳輸媒介,介紹下怎樣來發送接收一個完整的資料包。過程涉及到封包與解包。設計一個良好的包傳輸機制很有利於資料傳輸的穩定性以及正確性。串列埠只是一種傳輸媒介,這種包機制同時也可以用於SPI,I2C的匯流排下的資料傳輸。在微控制器通訊系統(多機通訊以及PC與微控制器

一條資料的HBase,簡明HBase入門教程-開篇

一些常見的HBase新手問題什麼樣的資料適合用HBase來儲存?既然HBase也是一個數據庫,能否用它將現有系統中昂貴的Oracle替換掉?存放於HBase中的資料記錄,為何不直接存放於HDFS之上?能否直接使用HBase來儲存檔案資料?Region(HBase中的資料分片)遷移後,資料是否也會被遷移?為何基

串列埠中怎樣接收一個完整資料的解析

方法1:串列埠接受資料,定時器來判斷超時是否接受資料完成。方法2:DMA接受+IDLE中斷實現思路:採用STM32F103的串列埠1,並配置成空閒中斷IDLE模式且使能DMA接收,並同時設定接收緩衝區和初始化DMA。那麼初始化完成之後,當外部給單片機發送資料的時候,假設這幀資

一個Perl 使用者的Python

作為萬年Perl 黨表示最近開始學Python 了,下面會記錄一下學習中Python 和Perl 的對比,如果你也是一個Perl 使用者,看過了也會對Python 有一個大致的印象吧。 事實上,寫著寫著我發現如果你是一名Python 使用者,看完後也會對Perl 有一個大致

一條資料的HBase,簡明HBase入門教程-Read全流程

這是《一條資料的HBase之旅》系列文章的第4篇,介紹HBase Get&Scan的核心思路。 系列文章 在閱讀此文之前,希望你已經讀過本系列文章的前3篇內容: 本文思路 介紹HBase的兩種讀取模式:Get與Scan 如何發起一次Get請求,Get有哪些關鍵引數 如何發

一條資料的HBase,簡明HBase入門教程-Flush與Compaction

Flush與Compaction其實屬於Write流程的繼續,所以本文應該稱之為”Write後傳“。在2.0版本中,最主要的變化就是新增了In-memory Flush/Compaction,而DateTieredCompaction並不算2.0新加入的特性,2.0版本在Compaction核心演

Javahibernate(3)——第一個hibernate的樣例

數據庫方言 自由 article 存儲 代理 mit rup 方便 post  在解說樣例之前。我們首先來理解一下hibernate的工作原理。理解原理將會幫助我們更好地理解hibernate和運用hibernate。  1. 原理圖   利用hibe

我的Android進階------>Android關於Log的一個簡單封裝

eight ron track 100% oid content amp 嚴重 center android.util.Log類,能夠方便地用於在編碼調試過程中打印日誌。可是在公布後的產品中,假設有太多的日誌打印。則會嚴重地影響性能。對android.util.Lo

2016年終總結--一個Python程序猿的跨界

hbase 在家 年終 oop 的確 高性能 view sql 設計 時間過得真快。感覺15年年終總結剛寫完,16年就結束了。看了blog,16年就寫了可憐的8篇,對我來說16年還算順風順水。真正可能出乎意料的是年底我離開了呆了2年半的龍圖遊戲,臨時放棄

Python.第四章.模塊與 4.02

ack 包含 sql mod 名稱空間 app mysql 一次 true 一、模塊的使用之import 1 什麽是模塊?模塊就一系統功能的集合體,在python中,一個py文件就是一個模塊,比如module.py,其中模塊名module2 使用模塊2.1 import 導

Python.第四章.模塊與.總結(未完待遇)

standard 後綴 att 擔心 lse 綁定 做的 業務 搜索 一、模塊 模塊: 一系列功能的集合體,在python中一個py文件就是一個模塊,模塊名就是py文件的文件名; 模塊的好處: 1.減少重復的代碼 2.拿來主義 定義模塊: 就是創建一個py文件;

Python.第四章.模塊與4.09

port 換行符 earch re模塊 shel bytes fda count sub 一、shelve模塊 Shelve(了解),是更高程度的封裝。使用時只針對之前設計生成的文件,可以無視不同平臺自動生成的其他文件。 Json的中間格式為字符串,用w寫入文件 Pic

...續上文(一個小萌新的C語言

double 調用函數 小數 一位 技術 類型 說過 fff 兩個 我們繼續上次沒介紹完的繼續講:     下面我們說一下二進制,二進制是計算技術中廣泛采用的一種 數制。 二進制數據是用0和1兩個 數碼來表示的數。它的基數為2,進位規則是“逢二進一”。那麽二進制怎麽轉化為十

一個博客萌新的C語言(持續更新中....)

方便 流程 函數聲明 語言 tex 表達 賦值語句 當前 寫在前面 先更新上一次留下的的C語言練習答案,如下: #include <stdio.h> double mj(double r) { return 3.14*r*r; } int main() { i

一個部落格萌新的C語言(持續更新中....)

先更新上一次留下的的C語言練習答案,如下: #include <stdio.h> double mj(double r) { return 3.14*r*r; } int main() { int r; double s; r=3; s=mj(r); printf("%f",s); }

React學習----mock模擬假資料及封裝axios,動態渲染表格

import React from 'react'; import { Card, Table, Modal, Button, message } from 'antd'; import axios from './../../axios/index' import Utils from './..

小程式學習----表單元件 button checkbox form input label radio slider switch textarea 獲取表單資料

<view class='input'> <input placeholder="請輸入內容1" confirm-type="done" type='text' focus="true" bindinput='doInput'/> </view> <