跨站式腳本(Cross-SiteScripting)XSS攻擊原理分析第1/4頁
更新時間:2008年09月06日 12:27:38 作者:
XSS又叫CSS (Cross Site Script) ,跨站腳本攻擊。它指的是惡意攻擊者往Web頁面里插入惡意html代碼,當用戶瀏覽該頁之時,嵌入其中Web里面的html代碼會被執(zhí)行,從而達到惡意用戶的特殊目的。
使用過ASP的同學一定見過這樣的代碼:
Hello,
<%
Response.Write(Request.Querystring("name"))
%>
假如我傳入的name的值為:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
這樣就可以直接盜取用戶的cookie。所以我就可以發(fā)送一條鏈接地址讓別人去點:
http://www.xxx.com/reg.asp?name=<script>x=document.cookie;alert(x);</script>
當然這樣做沒有一點隱蔽性,雖然前面的xxx.com瞞過了少數(shù)人,但大多數(shù)人可以辨認出后面的javascript代碼,所以,我只需要將后面的javascript代碼轉(zhuǎn)換成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你還認得嗎?除非你把它轉(zhuǎn)換出來。(進制轉(zhuǎn)換可以使用Napkin工具,哎,太壞了。。)
根本原因
1. 沒有對輸入進行約束,沒有對輸出進行編碼
2. 沒有嚴格區(qū)分“數(shù)據(jù)”和“代碼”
示例
發(fā)現(xiàn)大名鼎鼎的淘寶網(wǎng)也存在這樣的漏洞,我們在搜索框中輸入:
"/><div style="position:absolute;left:0px;top:0px;"><iframe src="http://www.baidu.com" FRAMEBORDER=0 width=1000 height=900/></div><a href="
這樣,我們已經(jīng)修改了淘寶原有的頁面,在下面嵌入了百度的首頁。效果如圖:

使用時機
我嘗試在各種不同網(wǎng)站尋找 XSS漏洞, baidu, amazon.cn, youku.com, dangdang.com等等。結(jié)果,我發(fā)現(xiàn)XSS漏洞非常普遍!其實XSS利用的是網(wǎng)頁的回顯,即,接收用戶的輸入,然后再在頁面顯示用戶的輸入??偨Y(jié) 一下幾個可能會出現(xiàn)漏洞的地方:
搜索引擎
1、留言板
2、錯誤頁面
3、通過在上面那些類型的頁面輸入一些特殊的字符(包括< > / "),如:</?jjkk>,然后在結(jié)果頁中的源碼處搜索是否存在原樣的:</?jjkk>,如果存在,恭喜你,發(fā)現(xiàn)了一個XSS漏洞。
Hello,
復制代碼 代碼如下:
<%
Response.Write(Request.Querystring("name"))
%>
假如我傳入的name的值為:
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
這樣就可以直接盜取用戶的cookie。所以我就可以發(fā)送一條鏈接地址讓別人去點:
復制代碼 代碼如下:
http://www.xxx.com/reg.asp?name=<script>x=document.cookie;alert(x);</script>
當然這樣做沒有一點隱蔽性,雖然前面的xxx.com瞞過了少數(shù)人,但大多數(shù)人可以辨認出后面的javascript代碼,所以,我只需要將后面的javascript代碼轉(zhuǎn)換成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
根本原因
1. 沒有對輸入進行約束,沒有對輸出進行編碼
2. 沒有嚴格區(qū)分“數(shù)據(jù)”和“代碼”
示例
發(fā)現(xiàn)大名鼎鼎的淘寶網(wǎng)也存在這樣的漏洞,我們在搜索框中輸入:
復制代碼 代碼如下:
"/><div style="position:absolute;left:0px;top:0px;"><iframe src="http://www.baidu.com" FRAMEBORDER=0 width=1000 height=900/></div><a href="
這樣,我們已經(jīng)修改了淘寶原有的頁面,在下面嵌入了百度的首頁。效果如圖:

使用時機
我嘗試在各種不同網(wǎng)站尋找 XSS漏洞, baidu, amazon.cn, youku.com, dangdang.com等等。結(jié)果,我發(fā)現(xiàn)XSS漏洞非常普遍!其實XSS利用的是網(wǎng)頁的回顯,即,接收用戶的輸入,然后再在頁面顯示用戶的輸入??偨Y(jié) 一下幾個可能會出現(xiàn)漏洞的地方:
搜索引擎
1、留言板
2、錯誤頁面
3、通過在上面那些類型的頁面輸入一些特殊的字符(包括< > / "),如:</?jjkk>,然后在結(jié)果頁中的源碼處搜索是否存在原樣的:</?jjkk>,如果存在,恭喜你,發(fā)現(xiàn)了一個XSS漏洞。
相關文章
Iptables防火墻iprange模塊擴展匹配規(guī)則詳解
這篇文章主要為大家介紹了Iptables防火墻iprange模塊擴展匹配規(guī)則詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-08-08