跨站式腳本(Cross-SiteScripting)XSS攻擊原理分析第1/4頁

 更新時間:2008年09月06日 12:27:38   作者:  
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執行,從而達到惡意用戶的特殊目的。
使用過ASP的同學一定見過這樣的代碼: 
Hello,
復制代碼 代碼如下:

<%
Response.Write(Request.Querystring("name"))
%>

假如我傳入的name的值為: 

[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執行]

這樣就可以直接盜取用戶的cookie。所以我就可以發送一條鏈接地址讓別人去點:
復制代碼 代碼如下:

http://www.xxx.com/reg.asp?name=<script>x=document.cookie;alert(x);</script>

當然這樣做沒有一點隱蔽性,雖然前面的xxx.com瞞過了少數人,但大多數人可以辨認出后面的javascript代碼,所以,我只需要將后面的javascript代碼轉換成URL的16進制,如:
復制代碼 代碼如下:

http://www.xxx.com/reg.asp?name=%3C%73%63%72%69%70%74%3E%78%3D%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3B%61%6C%65%72%74%28%78%29%3B%3C%2F%73%63%72%69%70%74%3E
上面的URL你還認得嗎?除非你把它轉換出來。(進制轉換可以使用Napkin工具,哎,太壞了。。)

根本原因
1. 沒有對輸入進行約束,沒有對輸出進行編碼
2. 沒有嚴格區分“數據”和“代碼”
示例
發現大名鼎鼎的淘寶網也存在這樣的漏洞,我們在搜索框中輸入:
復制代碼 代碼如下:

"/><div style="position:absolute;left:0px;top:0px;"><iframe src="http://www.baidu.com" FRAMEBORDER=0 width=1000 height=900/></div><a href="


這樣,我們已經修改了淘寶原有的頁面,在下面嵌入了百度的首頁。效果如圖:

使用時機
我嘗試在各種不同網站尋找 XSS漏洞, baidu, amazon.cn, youku.com, dangdang.com等等。結果,我發現XSS漏洞非常普遍!其實XSS利用的是網頁的回顯,即,接收用戶的輸入,然后再在頁面顯示用戶的輸入??偨Y 一下幾個可能會出現漏洞的地方:

搜索引擎
1、留言板
2、錯誤頁面
3、通過在上面那些類型的頁面輸入一些特殊的字符(包括< > / "),如:</?jjkk>,然后在結果頁中的源碼處搜索是否存在原樣的:</?jjkk>,如果存在,恭喜你,發現了一個XSS漏洞。

相關文章

最新評論

免费人成视频在线观看