1.反射性xss
輸入一些特殊字符跟數字組合
查看頁面源碼
可以看到它把我們輸入的內容原封不動的輸出
我們嘗試在輸入時候構造js的條件,輸入<script>alert(‘xss’)</script>,
這時我們可以看到輸入行對字數有限制,我們可以使用開發者工具進行修改,再次輸入。
成功執行,所以存在着xss漏洞,同時我們也可以看到這是一個get型的請求
這里說一下,get與post的區別:get以url方式提交數據;post以表單方式在請求體里面提交
Get方式的xss漏洞更加容易被利用,一般利用方式是將帶有跨站腳本的URL偽裝后發送給目標
Post方式因為是以表單方式提交,無法直接使用url方式進行攻擊
2.存儲型xss
我們留言 gxy 刷新一下 發現留言還在上面,也就是存儲到后台
輸入特殊字符+唯一標識符,提交,查看源碼 發現沒有做任何處理
構造js
彈窗 並且刷新之后 還是顯示這個框
查看XSS_stored.php源碼 知道就是把留言存儲下來
3.DOM型xss(前端輸入被dom獲取到,通過dom又在前端輸出了)
都是在前端操作的不涉及后端
案例一:
具體可以查看:https://www.w3school.com.cn/htmldom/index.asp
可以看一下getElementById()這個方法
回到實驗平台
輸入222
查看頁面源碼 看一下what do you see?是什么
搜索what
通過getElementById方法獲取text,text就是我們要輸入的內容,將text賦值給str,寫到了href里面
#’ onclick=”alert(222)”>
<a href=’#’ onclick=”alert(222)”>’>what do you see?</a>
點擊下面的what do you see? 彈框
說明這存在dom型的xss漏洞
案例二:輸入是從瀏覽器的url獲取的
查看源碼
與案例一不同的是,輸入是從瀏覽器的url獲取的
構造閉合
#’ onclick=”alert(222)”>
只要用戶打開這個網頁
http://192.168.27.156/pikachu/vul/xss/xss_dom_x.php?text=%23%27+onclick%3D%22alert%2822%29%22%3E#
就可以把這個的內容插入到用戶頁面里面