XSS漏洞是一種發生在Web前端危害較大的漏洞,其危害對象主要是前端用戶,此漏洞可以用來進行釣魚攻擊,前端js挖礦,用戶cookie獲取,甚至結合瀏覽器對用戶主機進行遠程控制等。
XSS漏洞常見類型有3種,分別是反射型,儲存型和DOM型,危害性:儲存型>反射型>DOM型。
反射型:交互數據一般不會儲存在數據庫里面,一次性,所見即所得,一般出現在查詢頁面等
儲存型:交互的數據會被儲存在數據庫里面,永久性儲存,一般出現在留言板,注冊等頁面
DOM型:不與后台的服務器產生數據交互,是一種通過DOM前端代碼輸出的時候產生的問題,一次性也屬於反射型
下面我在pikachu平台對這幾種常見類型進行演示。
反射型XSS漏洞
首先我們可以在界面中輸入一些特殊的字符進行提交,例如'"<>112233

根據返回信息我們知道錯誤,數據庫沒有,那么我們直接右擊查看頁面源代碼,
用Ctrl+f快捷鍵快速搜索剛提交的信息、

我們發現我們輸入的特殊字符直接被輸出到html的p標簽中,那我們就可以直接在前端寫入js語句讓它輸出到這里進行執行
但輸入之前我們應打開火狐瀏覽器web控制台修改一下可輸入最大字符長度

輸入簡單js的彈窗語句,試一下


我們發現我剛輸入的js代碼成功在瀏覽器中執行,這就是反射型XSS漏洞get型,
但是我們從前端輸入的信息並未在后端進行存儲,當我們刷新頁面時,我們上一次輸入的信息就會消失。
存儲型XSS漏洞
我剛才已經介紹了反射型XSS漏洞,存儲型XSS漏洞與它不同的就是它可以把我們注入到后台的腳本存儲起來,造成更持久的危害,
我們可以打開pikachu平台存儲型XSS漏洞模塊,首先輸入一些特殊字符你可以在頁面源碼中看到它被輸出到了后端
然后我們在前端輸入一個js彈窗語句

我們發現語句被執行了,刷新一下界面

我們發現依然會彈出彈窗,查看頁面源碼,我們發現輸入的腳本被儲存進了數據庫中,這就是存儲型XSS漏洞

DOM型XSS漏洞
DOM我們可以把它理解為一個訪問html的標准編程接口
打開pikachu平台DOM界面隨便輸入一些信息

隨便輸入些字符,返回了what do you see?然后我們查看一下頁面源碼。

通過js代碼可知道,他將我們輸入的值拼接到了一個a標簽里並將拼接的結果再放入id=dom的盒子里
所以我們可以通過閉合的方式利用這個漏洞 在輸入框中輸入<a href='#' onclick="alert('xss')"'>what do you see?</a>"
然后將我們補充部分也就是#' onclick="alert('xss')"輸入到框中執行,

如圖輸入內容后點擊“what do you see”就看到我們輸入的js彈框,原理就是我們前端輸入的信息被DOM獲取進行了相關操作,並從前端輸出
接下來我們試一下DOM型xss-x,隨便輸入一些信息,看一下它的源碼

查看源碼發現他通過window.location獲取url中我們的輸入信息然后還是發送到a標簽。我們再次使用上次的代碼進行,發現依然彈出窗。
這樣寫與上面不同的就是他的輸入是從前端的url中獲取,及漏洞輸入點在我們url的參數中類似上面提到的反射型
window.location獲取url中我們的輸入信息然后還是發送到a標簽。我們再次使用上次的代碼進行,發現依然彈出窗

