xss挑戰1-20關全通Writeup

XSS挑戰

在線:https://xss.tesla-space.com/
源碼:https://github.com/rebo-rn/xss-lab

level 1 最基本的xss

看源碼
在這裏插入圖片描述payload
在這裏插入圖片描述xss
在這裏插入圖片描述

level 2 轉換爲字符串

正常注入,注入失敗
在這裏插入圖片描述看下前端代碼,可以看到payload被作爲一個字符串整體輸入了,我們只需要將value的第一個雙引號閉合起來,然後再插入一個事件,最後再閉合value的第二個雙引號即可
在這裏插入圖片描述payload
在這裏插入圖片描述

在輸入框中點一下,xss生效
在這裏插入圖片描述

level 3 使用htmlspecialchars函數

嘗試payload

在這裏插入圖片描述看下源碼,可以看到使用了htmlspecialchars函數,它的作用是把預定義的字符 “<” (小於)和 “>” (大於)轉換爲 HTML 實體,所以不能使用尖括號
在這裏插入圖片描述嘗試payload
在這裏插入圖片描述可以看到此時alert()多了一個’,所以payload還需要修改
在這裏插入圖片描述最終payload
在這裏插入圖片描述
在這裏插入圖片描述補充:htmlspecialchars繞過

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

level 4 使用htmlspecialchars函數

跟上一關差不多
在這裏插入圖片描述在這裏插入圖片描述

level 5 當onclick被替換時

使用level 4 的payload發現onclick變成了o_nclick
在這裏插入圖片描述看下源碼,發現是替換了字符串
在這裏插入圖片描述使用payload

" ><a href=javascript:alert()>xss</a><"

點擊鏈接
在這裏插入圖片描述成功進行xss
在這裏插入圖片描述

level 6 href被替換了

上關的href被替換了,可以使用大寫

"><SCRIPT>alert()</SCRIPT><"

在這裏插入圖片描述

level 7 雙寫饒過

使用上一關的payload,這是啥情況,看源碼
在這裏插入圖片描述
可以看到,它將字母全部轉小寫然後替換成空了
在這裏插入圖片描述可以通過雙寫繞過

" ><scrscriptipt>alert()</scrscriptipt><"

在這裏插入圖片描述

level 8 實體編碼

嘗試payload
在這裏插入圖片描述
可以看到href=“111”
在這裏插入圖片描述再試payload
在這裏插入圖片描述
字符串被替換了
在這裏插入圖片描述
換大寫,還是不行
在這裏插入圖片描述
在這裏插入圖片描述雙寫也不行
在這裏插入圖片描述

使用實體編碼,服務器可能沒有過濾,瀏覽器會自動解析
&#116就字母t的實體編碼
在這裏插入圖片描述
可以看到沒有替換
在這裏插入圖片描述

點擊鏈接成功xss
在這裏插入圖片描述

level 9 檢測鏈接

會檢測鏈接是否合法
在這裏插入圖片描述

javascrip&#116:alert()//http://

在這裏插入圖片描述也可以把鏈接放在alert內部

javascrip&#116:alert('http://')

level 10 隱藏按鈕

通過url參數t_sort傳遞payload
在這裏插入圖片描述默認按鈕是隱藏的,無法觸發XSS,所以要先顯示按鈕
在這裏插入圖片描述在這裏插入圖片描述

level 11 Referer注入

沒有可見的輸入點
在這裏插入圖片描述看源碼,可以通過Referer傳遞payload

在這裏插入圖片描述payload如下
在這裏插入圖片描述在這裏插入圖片描述

level 12 User Agent注入

可以通過ua進行payload
在這裏插入圖片描述payload如下
在這裏插入圖片描述在這裏插入圖片描述

level 13 cookie注入

可能可以通過cookie進行注入
在這裏插入圖片描述看源碼得知要加上user
在這裏插入圖片描述payload
在這裏插入圖片描述在這裏插入圖片描述

level 14 罕見的exif xss

網頁內嵌了一個exifviewer網頁
在這裏插入圖片描述將製作好的xss圖片通過exifviewer上傳,exifviewer在解析這個漏洞的時候會觸發xss
所以需要先製作xss圖片
查看圖片詳情

exiftool brute.jpeg

將xss寫入圖片某個屬性,這樣xss圖片就做好了

$ exiftool -Artist=’ “><img src=1 onerror=alert(document.domain)>’ brute.jpeg

但是由於exifviewer現在好像不支持上傳了,這個漏洞是以前該網站存在的一個漏洞,現在也已經無法復現了

level 15 ng-include

f12看一下,看到個奇怪的<!–ngInclude:1.gif
在這裏插入圖片描述
angular js的ng-include相當於php的include函數
payload
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

level 16 %a0

keyword的值是center的內容
在這裏插入圖片描述
在這裏插入圖片描述payload,空格被過濾,使用%0D(url encode回車)替代
在這裏插入圖片描述

level 17 `1`

地址欄有兩個參數
在這裏插入圖片描述f12看一下
在這裏插入圖片描述arg02可以進行注入
payload
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

level 18 跟17關相同

在這裏插入圖片描述

level 19 flash xss

本關進行之前需要了解flash xss:
Flash XSS攻擊總結 殺死那個石家莊人/ 菲哥哥:https://www.secpulse.com/archives/44299.html

這一類的xss比較少見,更多技術細節參見:
那些年我們一起學xss:https://wizardforcel.gitbooks.io/xss-naxienian/content/14.html

payload flash xss
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述前提要打開flash
在這裏插入圖片描述

level 20 flash xss

這一題用到了zeroclipboard xss,具體可以參考這篇文章:
https://www.freebuf.com/sectool/108568.html
國內廣泛使用了zeroclipboard.swf,主要的功能是複製內容到剪切板,中間由flash進行中轉保證兼容主流瀏覽器,具體做法就是使這個透明的flash漂浮在複製按鈕之上

看一下源碼:
使用jpexs反編譯(swf反編譯工具:https://github.com/jindrapetrik/jpexs-decompiler
)
原因顯而易見,Externalinterface.call第二個參數傳回來的id沒有正確過濾導致xss
在這裏插入圖片描述

payload

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章