一個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核心演
Java之旅hibernate(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> <