URL結構
我們來仔細看看URLs和與其有關的安全含義。一種“有趣”的URL利用方式已被垃圾廣告投遞者發現很長時間了,不過現在“KB”(Knowledge Base)欺騙和二月發表於Crypto-Gram的文章,5自學網,已經使得URL可以做更多的事。
雖然大部分Internet用戶把WWW地址或FTP同URLs聯系起來,但Uniform Resource Locators(URL,統一資源定位器)使用的更普遍一些。URLs的標准在RFC1738中規定,其中最普通的形式定義為:
:
部分是網絡協議名稱,自學教程,部分被定義為:
//:@:/
其中只有部分是必須的。“:“和“@“字符具有特殊的含義,從而服務器可以解析完整的字符串.如果用戶名和密碼包含在URL中,部分只是從“@“字符後開始.看看在KB欺騙論及的例子:
&item=q209354@
其中真正的主機是““.““在這個URL中不過是個假的用戶名,服務器會忽略它.
雖然上面的例子是合乎語法的,但是卻可能引起同安全相關的問題.在Internet節點的終端,不是網卡、Modems或計算機,而是人.他們有意識或無意識都應該考慮到屏幕上出現的東西是否值得信任.
信任是最基本的安全評價.像上面例子那樣的帶有欺騙性的URL,利用了我們對常識中URLs格式的信任.這種欺騙還利用了我們把主要注意力都集中到主要內容而不是URL地址(雖然有時URL可以幫助我們判斷可信度)這個事實.SSL保護的站點,把一部分對可信度的判斷工作交給浏覽器,浏覽器會比較帶有SSL認證信息的域;另一方面,如果目的主機是虛構的,那麼僅僅依靠加密技術並不能提供太多有用的評價.
隱藏
上面關於URL的分析只是簡單的隱藏了它的真實目的地.我們可以用更好的方法來進行隱藏.由於某些原因(有可能是內部處理引起的),有的操作系統對IP地址的操作並不是通過我們常用的格式,就象是:aaa.bbb.ccc.ddd,而是相應的十進制數.
上面這類地址可以改寫成十進制的值:aaa*256^3 bbb*256^2 cccc*256 ddd.這樣,3633633987就是216.148.218.195(屬於紅帽子公司).你可以在浏覽器中輸入3633633987,你會發現你已經來到了REDHAT公司的網站上.上面的操作可以使用IE5.X或者是Linux下的Lynx,但並沒對其他操作系統進行測試,可能會相差很多.一些軟件會對你的輸入提示“非法的URLs“,但你只要用很少的軟件(包括常用的工具,如ping)進行測試,你就可以判斷出這個操作系統是否支持這種URLs的使用方式.
如果該操作系統支持這種使用,那麼就可以通過構造如下的URL來制造更大的迷惑:ontario@3633633987/,這個URL仍然指到REDHAT.因為很多的網站都把HTTP的SessionID存在URL中,來代替使用Cookie,所以Internet使用者並不會注意URL中的數字值,這樣上面構造的URL不會帶來任何懷疑.密碼部分可以省略,這@3633633987/的迷惑性更強.
現在,我們可以使用一些HTTP知識:anchor(錨)標記允許顯示的文本指到一個不是文本本身的連接上,這樣我們可以把連接寫,然後把連接的文字設成錨,再把這個錨連接@3633633987/上,是不是很危險,如果你點擊這個連接,依舊會把你帶到REDHAT公司.
另一個對信任的利用是可信站點的間接尋址提供的.很多知名網站通過如下格式的連接來記錄引導訪問者來此的網址:“://externalsite“,在服務器端捕獲請求信息後,再把用戶重定向到目標網站上.
這就使任何人都可以使用這種間接尋址服務,通過與URL困惑組合使用,給欺詐性的URLs提供更多的合法性.可以限制HTTP提交區域的輸入值,來避免非法的輸入,但很少有網站這麼做.
如果你覺著以上說的還不夠,哪你還可以利用Unicode編碼,把真實目的URL通過Unicode碼寫出,再解析時會還原成真實目的.
上面的這些對於“知識淵博“的垃圾廣告制造者來說都不是新東西,但對於用來攻擊一般不會起疑的用戶來說,還是非常有用的.
One-click 攻擊
下面,我們對URL安全問題進一步討論.
很多“標准“的攻擊都可以從緩沖區溢出開始,但是現在這種溢出卻不好找到.那麼,我們怎麼辦呢?
在注冊表中,有如下的鍵值:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PROTOCOLS\Handler,在HKEY_CLASSES_ROOT\Shell下還有“URL Protocol“這個子鍵(你可以使用查找來搜索這些鍵).其中你可以找到ftp://, , https://, mailto://, news://, pnm://和其他協議.這裡面有很多協議都是以前沒見過的,比如msee://.通過快速的試驗,發現msee://是“微軟大百科“使用的,可能是用來查閱內部文章用的.“微軟大百科“是否會引起緩沖區溢出呢,如果是,那麼是否可以實際利用呢?這些都要進行更深的研究.
我們可以找到很多在安裝軟件時添加的URL構造(比如copernic://就是copernic搜索工具生成的).另外,還可以使用腳本語言修改受害機注冊表來添加我們的URL結構,腳本語言可以用vbs編制,然後通過email發送過去,在然後.........你就可以使用這個URL結構來引起緩沖區溢出了.雖然這看起來同URL聯系不大,但多少還有些聯系,所以就一起說了。
來源:綠色兵團bbs