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

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

使用時(shí)機(jī)
我嘗試在各種不同網(wǎng)站尋找 XSS漏洞, baidu, amazon.cn, youku.com, dangdang.com等等。結(jié)果,我發(fā)現(xiàn)XSS漏洞非常普遍!其實(shí)XSS利用的是網(wǎng)頁(yè)的回顯,即,接收用戶的輸入,然后再在頁(yè)面顯示用戶的輸入??偨Y(jié) 一下幾個(gè)可能會(huì)出現(xiàn)漏洞的地方:
搜索引擎
1、留言板
2、錯(cuò)誤頁(yè)面
3、通過(guò)在上面那些類(lèi)型的頁(yè)面輸入一些特殊的字符(包括< > / "),如:</?jjkk>,然后在結(jié)果頁(yè)中的源碼處搜索是否存在原樣的:</?jjkk>,如果存在,恭喜你,發(fā)現(xiàn)了一個(gè)XSS漏洞。
您可能感興趣的文章:
- 淺談html轉(zhuǎn)義及防止javascript注入攻擊的方法
- 什么是JavaScript注入攻擊?
- linux抵御DDOS攻擊 通過(guò)iptables限制TCP連接和頻率
- 淺談利用JavaScript進(jìn)行的DDoS攻擊原理與防御
- Linux系統(tǒng)防CC攻擊自動(dòng)拉黑IP增強(qiáng)版(Shell腳本)
- linux封鎖IP簡(jiǎn)單防御UDP攻擊
- IP攻擊升級(jí),程序改進(jìn)以對(duì)付新的攻擊
- php下網(wǎng)站防IP攻擊代碼,超級(jí)實(shí)用
- 分析攻擊IP來(lái)源地與防御IP攻擊的應(yīng)對(duì)策略
相關(guān)文章
網(wǎng)絡(luò)安全滲透測(cè)試之musl堆利用技巧
這篇文章主要為大家介紹了網(wǎng)絡(luò)安全滲透測(cè)試之musl堆利用技巧,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-02-02四個(gè)步驟加強(qiáng)網(wǎng)絡(luò)防護(hù)
四個(gè)步驟加強(qiáng)網(wǎng)絡(luò)防護(hù)...2006-09-09Iptables防火墻iprange模塊擴(kuò)展匹配規(guī)則詳解
這篇文章主要為大家介紹了Iptables防火墻iprange模塊擴(kuò)展匹配規(guī)則詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08