学习xss的一些记录(一)
最近正在學(xué)習(xí)關(guān)于xss的一些知識,作為一個前端開發(fā)者,這個知識也是基礎(chǔ)的,以前也沒怎么好好學(xué)習(xí)與總結(jié),深感慚愧,接下來的幾天時間好好補(bǔ)習(xí)下。
xss是什么
xss的全稱是Cross Site Scripting,即跨站腳本。攻擊者通過向要攻擊的網(wǎng)站中插入一些惡意html,或者js代碼,來達(dá)到攻擊這個網(wǎng)站的其他用戶的目的。
xss具體是怎樣的
解釋太抽象,我要來點案例
下面的一個例子來自這里,借用一下大神的例子,傳送門
1.看下面這個表單,它的功能是在輸入框中輸入一些內(nèi)容,點提交后,下方會顯示你剛才的輸入
比如輸入abcd123,就顯示成這樣了,
因為你的輸入比較正規(guī),所以沒什么問題,那如果你輸入一些邪惡的呢,比如說下面這個
那就執(zhí)行了一段腳本了,這里是一個彈出框,只是用來說明這個腳本執(zhí)行了,實際攻擊中并不是這樣用的,因為彈個框沒意義,哈哈。但如果這里不是彈出框而是獲取cookie呢,如果這段內(nèi)容還可以被其他用戶看到的話,那就可以得到其他用戶的cookie了,可以利用這個cookie去登錄其他用戶的賬號,可以看到不該看的,想想就有點小激動有沒有。
xss居然還有分類
聽說xss分為反射型XSS,儲蓄型XSS,DOM XSS,哎喲有三種啊,他們都是什么鬼啊,應(yīng)該要細(xì)細(xì)講來。
反射型XSS
原理是這樣的:
Hacker——發(fā)現(xiàn)存在反射XSS的URL——根據(jù)輸出點的環(huán)境構(gòu)造XSS代碼——進(jìn)行編碼、縮短(可有可無,是為了增加迷惑性)——發(fā)送給受害人——受害打開后,執(zhí)行XSS代碼——完成hacker想要的功能(獲取cookies、url、瀏覽器信息、IP等等)
解釋來自于這篇文章,傳送門
這里可以看出是通過修改url的方式,因為url的參數(shù)可能在頁面中用到,那我們就可以在參數(shù)中加一些惡意代碼,當(dāng)受害人訪問這個鏈接的時候,這個惡意代碼就執(zhí)行了,當(dāng)然首先要把這個url發(fā)給受害人。
儲蓄型XSS
儲蓄型也叫持久型,什么情況下才能持久呢,那就是被保存到數(shù)據(jù)庫中了,或者說被后端保存起來了。
原理應(yīng)該是這樣的:
Hacker——發(fā)現(xiàn)存在儲蓄型XSS的表單或者能保存到后端的地方——根據(jù)輸出點的環(huán)境構(gòu)造XSS代碼——受害人訪問這個輸出點,執(zhí)行了XSS代碼——完成hacker想要的功能(獲取cookies、url、瀏覽器信息、IP等等)
比如說有一個留言板,大家都可以留言,可以想到這個留言是要保存到后端的,如果這個留言板有xss漏洞的話,我們發(fā)表一些惡意代碼,然后惡意代碼就被保存到服務(wù)器上了,當(dāng)別人訪問的時候,惡意代碼執(zhí)行,然后中招。
DOM XSS
參考文章
看了一些文章之后,感覺到DOM XSS也是反射型XSS的一種,因為他的攻擊方法也是在url上加參數(shù),可能這個不同點在于對這個參數(shù)的處理上吧,反射型XSS應(yīng)該是后端處理上,DOM XSS應(yīng)該是javascript基礎(chǔ)上處理的,兩者差別不大,但與儲蓄型xss卻又明顯區(qū)別,差不多是這樣。
今天就先記錄到這里,搞懂xss是什么和大概攻擊狀況的問題,下一篇來記錄xss后端處理和前端處理的問題。
總結(jié)
以上是生活随笔為你收集整理的学习xss的一些记录(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 Daynamic 动态添加属性
- 下一篇: MyBatis --教程