學習xss的一些記錄(一)

最近正在學習關於xss的一些知識,做爲一個前端開發者,這個知識也是基礎的,之前也沒怎麼好好學習與總結,深感慚愧,接下來的幾天時間好好補習下。javascript

xss是什麼

xss的全稱是Cross Site Scripting,即跨站腳本。攻擊者經過向要攻擊的網站中插入一些惡意html,或者js代碼,來達到攻擊這個網站的其餘用戶的目的。html

xss具體是怎樣的

解釋太抽象,我要來點案例
下面的一個例子來自這裏,借用一下大神的例子,傳送門前端

1.看下面這個表單,它的功能是在輸入框中輸入一些內容,點提交後,下方會顯示你剛纔的輸入
clipboard.pngjava

好比輸入abcd123,就顯示成這樣了,
clipboard.pngweb

由於你的輸入比較正規,因此沒什麼問題,那若是你輸入一些邪惡的呢,好比說下面這個數據庫

clipboard.png

那就執行了一段腳本了,這裏是一個彈出框,只是用來講明這個腳本執行了,實際攻擊中並非這樣用的,由於彈個框沒意義,哈哈。但若是這裏不是彈出框而是獲取cookie呢,若是這段內容還能夠被其餘用戶看到的話,那就能夠獲得其餘用戶的cookie了,能夠利用這個cookie去登陸其餘用戶的帳號,能夠看到不應看的,想一想就有點小激動有沒有。後端

xss竟然還有分類

據說xss分爲反射型XSS,儲蓄型XSS,DOM XSS,哎喲有三種啊,他們都是什麼鬼啊,應該要細細講來。瀏覽器

反射型XSS

原理是這樣的:服務器

Hacker——發現存在反射XSS的URL——根據輸出點的環境構造XSS代碼——進行編碼、縮短(無關緊要,是爲了增長迷惑性)——發送給受害人——受害打開後,執行XSS代碼——完成hacker想要的功能(獲取cookies、url、瀏覽器信息、IP等等)cookie

解釋來自於這篇文章,傳送門

這裏能夠看出是經過修改url的方式,由於url的參數可能在頁面中用到,那咱們就能夠在參數中加一些惡意代碼,當受害人訪問這個連接的時候,這個惡意代碼就執行了,固然首先要把這個url發給受害人。

儲蓄型XSS

儲蓄型也叫持久型,什麼狀況下才能持久呢,那就是被保存到數據庫中了,或者說被後端保存起來了。

原理應該是這樣的:

Hacker——發現存在儲蓄型XSS的表單或者能保存到後端的地方——根據輸出點的環境構造XSS代碼——受害人訪問這個輸出點,執行了XSS代碼——完成hacker想要的功能(獲取cookies、url、瀏覽器信息、IP等等)

好比說有一個留言板,你們均可以留言,能夠想到這個留言是要保存到後端的,若是這個留言板有xss漏洞的話,咱們發表一些惡意代碼,而後惡意代碼就被保存到服務器上了,當別人訪問的時候,惡意代碼執行,而後中招。

DOM XSS

參考文章

看了一些文章以後,感受到DOM XSS也是反射型XSS的一種,由於他的攻擊方法也是在url上加參數,可能這個不一樣點在於對這個參數的處理上吧,反射型XSS應該是後端處理上,DOM XSS應該是javascript基礎上處理的,二者差異不大,但與儲蓄型xss卻又明顯區別,差很少是這樣。

今天就先記錄到這裏,搞懂xss是什麼和大概攻擊情況的問題,下一篇來記錄xss後端處理和前端處理的問題。

相關文章
相關標籤/搜索