一個HTTP數據包的奇幻之旅

我是一個HTTP數據包,不知誰建立了我,把我丟到這個房間。nginx

忽然,來了一個大漢,我嚇得縮到角落。程序員

「該啓程了,站起來」。web

「去哪裏啊?」瀏覽器

我弱弱的問。安全

「還能去哪裏,你是一個數據包,固然要出遠門,完成你的使命啊,別囉嗦,我要先把你複製到內核空間,一會要發出去,讓我來看下你的內容」。服務器

我不敢多言,乖乖的站好,一眨眼的功夫,我來到了另外一個房間。網絡

「這是哪裏,我怎麼到這裏來了?」我有點好奇。tcp

「這裏是內核地址空間,剛纔你在用戶態地址空間,全部的數據包都得從這裏出發,你也不例外」。spa

看着這片陌生的環境,我也不知道他說的內核空間是什麼意思,這裏有好多房間,還有好多跟他同樣的大漢在工做,好多數據包都在這裏,進進出出,好不熱鬧。線程


<————————————————————————————————>

出發前的俄羅斯套娃

 

「等着,我去拿點東西」,大漢去了一座大廈,我擡頭一看,上面寫着tcpip.sys。

這時,旁邊另一個數據包走了過來。

「唉,小子,剛出發呢。」

「你是誰?」

「我也是一個HTTP數據包,不過我是一個響應包,剛剛從遙遠的Linux帝國過來這裏,我立刻就完成個人使命了,這一路給我累得」,這個數據包嘆口氣回答。

「很遠嗎,這麼辛苦啊」,我開始有點擔憂個人旅程起來。

「這很差說,我不知道你去哪,接個人人來了,再見」。

不一下子,大漢提着一個箱子走了出來,箱子正面寫了三個大大的字母:TCP。

「這是傳輸層的箱子,快進去」,大漢命令的口吻。

「你要我鑽進這個箱子啊?」我不太相信。

「對,沒錯,麻利的」。

「這箱子上面寫的數字60059和80是什麼意思?」我注意到箱子背面也寫了不少東西。

「60059是建立你的人用的端口號碼,80是後面接待你的人的端口號碼」。

「那這第二排的0x2C877F30和0xBD62DFB3又是什麼意思呢?」

「這是建立你的人使用的序列號和應答對方的確認號,你問題咋這麼多」,大漢開始不耐煩了。

「還有這個···」「行啦,快進去,趕時間」,大漢打斷了個人提問,我乖乖的鑽進了這個叫TCP的箱子。

「是否是能夠出發了?」我問大漢。

「還早着呢,這纔剛開始呢」,大漢笑着說。

「再等一下,我還要進去一趟」,說完大漢又進了這個tcpip.sys大廈。

沒過多久,大漢又出來了,手裏又拎了一個更大的箱子,上面也寫着兩個大大的字母:IP。

這一次,大漢二話不說,直接把我連同TCP箱子一塊兒丟進了這個IP箱子。

「怎麼還要套一層啊」,我緊張的問他。「你不懂,這個網絡是分層的,剛纔那個箱子是......唉,我跟你說這些幹啥」,大漢提着我離開了tcpip.sys大廈。

 

 

咱們來到了一個碼頭,這裏數據包來來每每特別繁華,大漢把我帶到一個大大的倉庫,裏面有不少數據包,對我說:「乖乖待在這裏排隊,我就先走了,一下子會有人來把你發出去的。」,大漢拍拍個人肩膀就離開了。

「咦,你也是去222.196.242.24的,我也是呢,真巧!」

前面一個數據包跟我打招呼。

我愣了一下:「你怎知我要去哪裏?」

「喏,你這外面的箱子不是寫了嗎,你看個人,跟你的同樣,這裏寫的就是我們要去的地方的IP地址」,她特別激動。

<————————————————————————————————>

第一站:網關

 

很快,來了一個小胖子叫到我了,我當心翼翼的走了過去。

「你這是要去公網啊,來,先去網關那裏吧」,說完,小胖又給我套了一個箱子,前面寫着:Ethernet II,背面寫了一串:FE-D8-65-C8-2B-D7;86-D5-32-01-0E-3B。

「小哥,這個箱子又是幹嗎的,這上面寫的又是啥呢?」

「這個箱子是把你送到網關那裏去的,FE-D8-65-C8-2B-D7就是網關的網卡地址,後面那個是咱這裏的地址」,小胖說話卻是很客氣。

「坐好了,要出發了哦」,小胖一頓操做,我好像坐上火箭,離開了這片土地。

途中見到了好多好多的數據包,有出發的,也有過來的,像穿越時空隧道通常夢幻。還沒來得及欣賞,就被一個黑臉的抓了下來,看來我是到小胖說的網關了。

黑臉人一臉冷漠,問他話也不答,只顧作本身的事情。幾下功夫,便將我最外面的箱子拆掉,而後拿着一個手冊查了下個人目的IP地址。

「好了,跟我來」,黑臉的把我帶到另一個碼頭,一頓操做把我給發了出去。

<————————————————————————————————>

穿越比特宇宙

 

這裏的數據包比剛纔那裏更多,更熱鬧。一路上,不時有人把我抓下去,而後又從一個新的碼頭髮出去,把我弄的暈頭轉向的。

過了好一下子,到了一個地方,又一個胖子接待了我。

「大哥,我這是到終點了嗎?」

「快了,你已經到目的網絡網關了,下一站就到了」。

「來的路上那些人把我抓下去又發出來是幹啥呢?」

「這叫網絡路由,他們那些人接力才把你送到這裏的」。說完,這胖子又給我套上了一個Ethernet II的箱子發了出去,我知道,這是要送我去最終目的地了。


不知道是什麼web服務器會來接待我呢,即將完成使命的我開始興奮起來。

<————————————————————————————————>

出師未捷身先死

 

很快,我又被人抓了下去。

「是否是我到站了啊,終於要完成任務了」,我伸伸懶腰。

那人卻不說話,只是將個人Ethernet箱子拆去,放到了一個倉庫。

沒多久,來了一個大叔,把我帶了出去。

「我們是否是要去tcpip.sys大廈,把個人箱子都拆掉啊」,我小聲的問。

「這裏是Linux帝國,沒有你說的大廈。不過你卻是猜對了,就是去拆箱子」。

很快,這位大叔就拆掉了個人IP箱子和TCP箱子,把我放到一個房間。

「在這等着,一下子有人會來找你」。

「是否是web服務器的人來找我?」我激動的問。

大叔也沒有理我,轉身離開。

大叔剛走,就有一挎刀黑衣人過來,我嚇了一跳,web服務器的人怎麼這麼兇,還帶刀。

黑衣人用了一臺儀器對我一通掃描,忽然儀器紅色警報燈響起,我緊張到了極點。

「小子,你的請求表單字段裏面有SQL語句,你是來幹什麼的?」,黑衣人惡狠狠的質問我。

「我不知道誰建立的我啊,我只是個HTTP數據包,大家這裏不是web服務器嗎,我是否是走錯了」,我嚇得臉色慘白。

「你沒有走錯,是咱們截下的你,這裏不是web服務器,這裏是WAF」,黑衣人得意的說到。

「WAF是什麼,那我確定走錯了,快放我離開」,我想逃離這裏。

然而,黑衣人大喝一聲:「站住,你這個邪惡的數據包,伏誅吧!」。

我回頭一看,只見黑衣人舉起大刀······

 

未完待續·······

 

彩蛋 

nginx公司的人正在緊張忙碌着,黑衣人忽然闖了進來。「

叫大家管事兒的過來,發現針對一塊兒80端口的SQL注入攻擊,咱們須要調查取證」 

 

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

 
相關文章
相關標籤/搜索