a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 網站 > 網站安全 > 正文

解決網站防掛IFRAME木馬的原理

2024-09-06 18:38:36
字體:
來源:轉載
供稿:網友

相信大多數朋友都是iframe木馬的受害者,有朋友的網站被注入了n回iframe,心情可想而知。而且現在arp攻擊,注入iframe也是輕而易舉的事,僅局域網里都時刻面臨威脅,哎,什么世道。接近年關,為了防止更多的朋友受到攻擊,于是細細說下。

靈兒曾經在經典論壇上發過貼子:《一行代碼解決網站防掛iframe木馬方案》,有不少朋友都聯系了靈兒,有的表示感謝,不過更多的是疑問了,今天把原理細細地講一下吧:

ie only——一般只有ie害怕iframe這樣的掛馬,所以靈兒就拿ie開刀。

在閱讀本文之前,我們先了解一下expression;

ie5及其以后版本支持在css中使用expression,用來把css屬性和javascript腳本關聯起來,這里的css屬性可以是元素固有的屬性,也可以是自定義屬性。就是說css屬性后面可以是一段javascript表達式,css屬性的值等于javascript表達式執行的結果。在表達式中可以直接引用元素自身的屬性和方法,也可以使用其他瀏覽器對象。這個表達式就好像是在這個元素的一個成員函數中一樣。

很多朋友都知道css可以直接描述一個可視標記的外觀。例如:p{color:red} 則網頁里所有p標記里的文字顏色都會變成紅色;iframe不也是一個標記嗎?開始跟靈兒寫代碼吧,呵呵:
iframe{...這里寫描述外觀的css代碼;};

仔細想想要防止iframe里的東東被下載的最好辦法是什么?核心來了,那就是切斷iframe里的請求,切斷請求就是要迅速銷毀iframe對象。如何實現呢,上面不是介紹了expression嗎?expression是可以執行js腳本的哈。語法格式如下二種:

        標記固有的css屬性名:expression(js表達式);
     或      自定義屬性名:expression(js表達式);

在這里我們選擇第二種,代碼應該大致是這樣 iframe{v:expression(js表達式);}

接下來的問題是如何銷毀網頁里所有的iframe對象;使用js實現的原理是這樣的:使iframe里的請求地址變成空白頁(about:blank),再將iframe對象從dom(文檔對象模型)中移除就可以切斷所有iframe里的請求了。移除dom節點的方法比較多,我這里就用 outerhtml這個屬性吧。css代碼如下:

iframe{v:expression(this.src='about:blank',this.outerhtml='');}

說明:前面的v字是靈兒自己定義的一個css屬性,這里的this代表所有將要描述外觀的iframe對象,中間的逗號代表二句代碼一起執行,沒有執行優先順序,這可是強有力的保證噢。about:blank代表空白頁,大家都知道的。outerhtml屬性是dom對象包含自身的html代碼,而innerhtml則是dom對象(不含本身)里面所包含的html代碼。

爽快,代碼寫好了,就讓我信來測試一下有沒有效果。

首先,新建一個網頁,插入以上的css代碼(或在您現有的css代碼里加入上面那句):

<style type="text/css">
iframe{v:expression(this.src='about:blank',this.outerhtml='');}
</style>

然后在這個頁面插入幾個iframe代碼,假設它們是被掛的木馬網頁。代碼如下:

<iframe src="http://www.baidu.com"></iframe> 百度
<iframe src="http://www.126.com/"></iframe> 126郵箱
<iframe src="http://www.163.com"></iframe> 網易

保存為noiframe.htm,打開瀏覽器測試一下(本地測試需要啟用頂部禁用的腳本的提示條哦)。我這里使用抓包工具來測試,不過也沒有必要使用抓包工具,一個最簡單有效的方法是打開ie的緩存文件夾,先清空它,再刷新這個頁面,看看緩存文件夾里有沒有這三個網站里的文件。如果沒有,說明沒有任何請求結果被返回——測試結果是令人滿意的,我的臉上有些微笑 ^^*,這時同事遞給我一塊餅,蠻好吃的。

提示:windows xp sp2的緩存文件夾位置 c:/documents and settings/administrator/local settings/temporary internet files

細心的朋友發現問題來了,如果我自己的網頁里要使用iframe這個東東怎么辦?

答:如果要使自己的iframe顯示在網頁里,而別人掛的iframe馬都不起作用,在css里加一個 #f126{v:expression() !important}
對應的iframe代碼為:

<iframe id="f126" name="f126" src="http://www.126.com/"></iframe> 

就ok了。

提示:ie7中優先執行標注有“!important”描述的樣式,ie6不認識!important,采用就近原則,所以ie6的這個代碼放在css的最后就可以了。

這里的f126,有很多朋友有疑問,他們問我為什么取"f126",我這樣回答——這個f126是隨意取的,只要下面的iframe里的id屬性和css里的一致就行了。同事又要遞一塊餅我吃,我說飽了哈..嘻嘻..

當然掛馬者可以構造這樣的代碼:

<iframe style="v:expression() !important" src="url"></iframe>

使我的防御方式失效,不過它得特意去看我的css代碼里iframe里的前綴v,如果我的v是變化的呢,哈哈,是不是也不管用呢!

小結
以上的方法只是停止了iframe的請求并銷毀了它本身,但以后的掛馬方式改變了,例如改成<script></script>方式掛,就不能用這種方法來解決了;此這個方法不是最終的解決案,最終的解決方案是找出真正被掛iframe的原因,堵住源頭。這可不是我的事哈,呵~

應用實例http://www.cncert.net  以此代碼配合md5(hash)校驗,非常完美的防掛馬解決方案;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: www.4虎| 久久人| 精品国产一级毛片 | 中文字字幕在线 | 在线免费中文字幕 | 亚洲黄色在线观看 | 久久夜夜操妹子 | 成人av免费在线观看 | 久久久久久久av | 嫩草午夜少妇在线影视 | 亚洲高清av | 国产免费一区二区三区最新不卡 | 男人视频网站 | 在线日韩欧美 | 欧美视频网站 | 国产精品免费视频观看 | 日韩精品一区二区三区视频播放 | 狠狠艹视频 | 中文字幕一区二区在线观看 | 韩国精品在线 | 亚洲午夜视频在线观看 | 国产精品久久久久久一级毛片 | 91久久久www播放日本观看 | 日韩在线免费视频 | 国产在线观看一区二区三区 | 精品毛片 | 日本黄色影片在线观看 | 日本福利一区二区 | 另类 综合 日韩 欧美 亚洲 | 日韩欧美一区二区视频 | 成人影院一区二区三区 | 精品一区二区三区久久久 | 新91在线视频 | 欧美三级网站 | 欧美性猛交一区二区三区精品 | 三区在线| 深夜福利1000| 成人在线视频观看 | 91av在线不卡 | 国产精品毛片久久久久久久 | 国产精品久久久久久久久免费高清 |