這幾天在學習一些對我而言仍然是新的事物,或許這些事物其實已經出來很久了 =.="
看到一題和電腦網路有關的考題,大意是這樣:
當你看到 http://2138996092/ 這樣的網址時,你應該聯想到這可能是什麼樣的網路攻擊手法?這題目的答案是「網路釣魚」。
當我首次看到題目時,我第一直覺心想,這網址連得上就有鬼了!複製了網址,貼到網址列,看著我的 Firefox 的分頁一直轉呀轉,應證了我的想法:這網址連不上。但隨後我卻發現,網址反而不是最原先的 http://2138996092/,反而是以 http://xxx.xxx.xxx.xxx/ 這樣的 IP 型態呈現。噢~傑克,這真是太神奇了!
我的電腦還是網路,還是哪裡出了什麼問題嗎?拿香拜一下 Google 大神,找到一篇 2011 年 Symantec 官方部落格的文章。
大概內容就是講混淆式網址 (URL Obfuscation) 的一些型態,以及一些關於資安的防護建議。
一般來講,我們所看到的網址型態有兩種:
- 很單純的網址型態,例如:http://www.google.com.tw/
- IP 型態,例如:http://192.168.0.1/
IP 型態較常在一般設定網路設備,例如:無線分享器時所見
主要問題在於 IP 型態的網址,IP 型態的網址,通常我們看到數字,都是十進位制,這也是我們平常生活中,最常使用及見到的數字進位系統。IP 實際上是一個 32 位元(即長度為 32)的二進位制數字,而含小數點十進位制的 IP 格式,只是其中一種表示法。
根據 Symantec 的文章指出,混淆式網址,有數種型態,我分別以
- 藍色代表八進位
- 紅色代表十六進位
- 黑色粗體代表十進位
範例:
- 十六進位,例如:http://0x7f7e7d7c/
- 十六進位,以小數點做分隔,例如:http://0x7f.0x7e.0x7d.0x7c/
- 八進位,例如:http://0177.0176.0175.0174/
- 八進位 + 十六進位的混和型態,例如 http://0x7f.0176.0x7d7c/
另外一種是文章中沒有提到的,但我自己試出來的,就是八進位 + 十進位 + 十六進位
- http://0x7f.0176.0x7d.124/
至於 http://2138996092/ 又是怎麼來的?
在電腦的世界,是以 0 和 1 構成,而 IP 則是由長度 32 的 0 和 1 構成1,但長度 32 太長了,所以會再成 4 組,各組以小數點「.」做區隔,每組長度為 8,且均為二進位。
例如:
01111011.01000101.01100111.10001001
各組再換算成十進位制之後,就可以得出像是 123.45.67.89 這種我們人類所熟悉的 IP 表示法。
如果不將 IP 分組,直接將長度為 32 的二進位數值,轉換成十進位數值,最終結果,就會得到一個看起來很大的十進位數值。
想一想,也是頂可怕的,我自以為 http://2138996092/ 這樣子的網址,一定會無法連上網站,只因為我都覺得「這不是一個有效的網址,因為它不是我熟知的網址或 IP 型態」,所以連不上網站,是「必然的」。幸好,因為好奇心,拜了一下 Google 大神,同時也找到相關資訊,再實作一下做為驗證,也算是為自己的觀念,再做了一點更新。
最後,還是提醒大家,覺得奇怪的、不認識的、不確定的網址,真的不要亂點。
此外,文章中所有的混淆式網址,通通都代表「127.126.125.124」這個 loopbak IP,在 Linux 裡可以用 ping 或是 traceroute;而 Windows 則是 ping 或 tracert,得到混淆式網址的 IP,這個 IP 會是我們熟知的 xxx.xxx.xxx.xxx 格式。
【其他資訊】
- IPv4,若是 IPv6 則是 128 [↩]