xskow's road.

          做好自己,做好一切。
          數(shù)據(jù)加載中……
          【轉(zhuǎn)】網(wǎng)絡(luò)安全:了解網(wǎng)頁的CSS掛馬及相應(yīng)防范方法

          黑客們發(fā)現(xiàn)發(fā)現(xiàn),用來制作網(wǎng)頁特效的CSS代碼,也可以用來掛馬。

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

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

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

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

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

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

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

          黑客為什么選擇CSS掛馬?

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

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

          小百科:

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

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

          CSS掛馬攻防實(shí)錄

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

          方式1:

          Body

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

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

          小百科:

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

          方式2:

          Body

          background-image: url(t:open("

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

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

          目前除了使用以前的阻斷彈出窗口防范CSS掛馬之外,還可以在網(wǎng)頁中設(shè)置CSS過濾,將CSS過濾掉。不過如果你選擇過濾CSS的話,首先需要留意自己的相關(guān)網(wǎng)頁是否有CSS的內(nèi)容,因此我們?nèi)匀皇淄朴米钄喾绞絹矸婪禖SS。阻斷代碼如下所示:

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

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


          轉(zhuǎn)載出處:http://www.cioage.com/art/200906/78221.htm

          posted on 2009-06-19 09:51 xskow! 閱讀(139) 評論(0)  編輯  收藏 所屬分類: Web安全

          links:
          主站蜘蛛池模板: 株洲市| 安图县| 砚山县| 文登市| 盘山县| 木兰县| 丹棱县| 晋江市| 松原市| 黑水县| 双辽市| 剑川县| 辽阳市| 蓬莱市| 安仁县| 牟定县| 兴仁县| 兴山县| 纳雍县| 拉萨市| 十堰市| 静安区| 乌拉特前旗| 仁怀市| 徐闻县| 沛县| 澎湖县| 太保市| 小金县| 吉林省| 洛南县| 安新县| 广汉市| 张家港市| 曲靖市| 深圳市| 镇安县| 轮台县| 兴国县| 株洲县| 金堂县|