|
URL欺騙 By Razvan Peteanu (razvan.peteanu@home.com) for SecurityPortal.com Trans By F@tFox (fatfox@yesky.com) URL結構 我們來仔細看看URLs和與其有關的安全含義。一種“有趣”的URL利用方式已被垃圾廣告投遞者發現很長時間了,不過現在“KB”(Knowledge Base)欺騙和二月發表于Crypto-Gram的文章,已經使得URL可以做更多的事。 雖然大部分Internet用戶把WWW地址或FTP同URLs聯繫起來,但Uniform Resource Locators(URL,統一資源定位器)使用的更普遍一些。URLs的標準在RFC1738中規定,其中最普通的形式定義爲: : 部分是網路協定名稱,部分被定義爲: //:@:/ 其中只有部分是必須的。":"和"@"字元具有特殊的含義,從而伺服器可以解析完整的字串.如果用戶名和密碼包含在URL中,部分只是從"@"字元後開始.看看在KB欺騙論及的例子: http://www.microsoft.com&item=q209354@www.hwnd.net/pub/mskb/Q209354.asp ; 其中真正的主機是"www.hwnd.net"."www.microsoft.com"在這個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(屬於www.redhat.com紅帽子公司).你可以在瀏覽器中輸入3633633987,你會發現你已經來到了REDHAT公司的網站上.上面的操作可以使用IE5.X或者是Linux下的Lynx,但並沒對其他作業系統進行測試,可能會相差很多.一些軟體會對你的輸入提示"非法的URLs",但你只要用很少的軟體(包括常用的工具,如ping)進行測試,你就可以判斷出這個作業系統是否支援這種URLs的使用方式. 如果該作業系統支援這種使用,那麽就可以通過構造如下的URL來製造更大的迷惑http://www.toronto.com:ontario@3633633987/,這個URL仍然指到REDHAT.因爲很多的網站都把HTTP的SessionID存在URL中,來代替使用Cookie,所以Internet使用者並不會注意URL中的數位值,這樣上面構造的URL不會帶來任何懷疑.密碼部分可以省略,這http://www.toronto.com@3633633987/的迷惑性更強. 現在,我們可以使用一些HTTP知識:anchor(錨)標記允許顯示的文本指到一個不是文本本身的連接上,這樣我們可以把連接寫http://www.toronto.com,然後把連接的文字設成錨,再把這個錨連接http://www.toronto.com@3633633987/上,是不是很危險,如果你點擊這個連接,依舊會把你帶到REDHAT公司. 另一個對信任的利用是可信站點的間接定址提供的.很多知名網站通過如下格式的連接來記錄引導訪問者來此的網址:"http://www.thisisarespectablesite.com/outsidelinks/http://externalsite";,在伺服器端捕獲請求資訊後,再把用戶重定向到目標網站上. 這就使任何人都可以使用這種間接定址服務,通過與URL困惑組合使用,給欺詐性的URLs提供更多的合法性.可以限制HTTP提交區域的輸入值,來避免非法的輸入,但很少有網站這麽做. 如果你覺著以上說的還不夠,哪你還可以利用Unicode編碼,把真實目的URL通過Unicode碼寫出,再解析時會還原成真實目的. 上面的這些對於"知識淵博"的垃圾廣告製造者來說都不是新東西,但對於用來攻擊一般不會起疑的用戶來說,還是非常有用的. One-click 攻擊 下面,我們對URL安全問題進一步討論. 很多"標準"的攻擊都可以從緩衝區溢出開始,但是現在這種溢出卻不好找到.那麽,我們怎麽辦呢? 在註冊表中,有如下的鍵值:HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PROTOCOLS\Handler,在HKEY_CLASSES_ROOT\Shell下還有"URL Protocol"這個子鍵(你可以使用查找來搜索這些鍵).其中你可以找到ftp://, http://, https://, mailto://, news://, pnm://和其他協定.這裏面有很多協定都是以前沒見過的,比如msee://.通過快速的試驗,發現msee://是"微軟大百科"使用的,可能是用來查閱內部文章用的."微軟大百科"是否會引起緩衝區溢出呢,如果是,那麽是否可以實際利用呢?這些都要進行更深的研究. 我們可以找到很多在安裝軟體時添加的URL構造(比如copernic://就是copernic搜索工具生成的).另外,還可以使用腳本語言修改受害機註冊表來添加我們的URL結構,腳本語言可以用vbs編制,然後通過email發送過去,在然後.........你就可以使用這個URL結構來引起緩衝區溢出了.雖然這看起來同URL聯繫不大,但多少還有些聯繫,所以就一起說了.
|
|
|