xss labs 挑战之旅
沒事重新從xss的源碼分析一下形成和利用
查看原碼發現對輸出沒有進行過濾,直接get參數輸出
查看原碼發現對輸出沒有進行過濾,直接get參數輸出
2. 第二關進入,看到輸入發現沒回應,查看原碼被轉義了嘗試構造閉合payload: “>
打開源碼發現一處被htmlspecialchars($str)轉義另一處沒有轉義
3. 進入第三關構造payload打開原碼發現尖括號被轉義,使用事件函數oninput onclick 或者onchange payload為’ οnchange=alert’123’ ‘觸發
查看原碼發現尖括號被轉義
4. 進入第四關 構造payload發現為黑名單過濾了尖括號使用onclick觸發,使用“閉合payload為
" οnclick=alert ‘123’
查看原碼果然為 黑名單過濾
6. 進去后嘗試payload查看前臺原碼發現on和script變成了o_n ,s_cript ,嘗試使用a標簽實現函數的調用,然后用javascript:alert(‘123’)去調用javascript函數觸發構造的pyload
"> dian
查看原碼發現對特定函數進行了添加_
7. 嘗試構造payload發現上次的href增加了_,嘗試增加大小寫繞過 payload ">dian
查看原碼發現黑名單果然增加了
8. 構造上次的payload發現href和 script被過濾,嘗試復寫嵌套”>alert(1)
查看原碼果然是過濾了這些函數
9. 構造payload嘗試發現給關鍵字都加上了_ 大小寫也不行,嘗試html編碼繞過成功payload
javascript:alert(1)
查看源碼
9.使用上次的pyload發現沒有識別,查看前臺原碼發現提示要驗證http合法性后面添加javascript:alert(1)//http://
查看后端原碼,發現在以前的基礎上添加了http判斷
10.進入第10關,查看前臺原碼嘗試函數發現多了hidden這個參數,發現t_sort是可以注入的,于是用t_sort來彈窗構造payload使用onclick彈出使用text顯示出來payload為 t_sort=" οnclick=“alert(123)” type=“text” “”
11.構造payload查看前臺源碼發現ref字段是http referer的值,參數嘗試抓包改包,構造參數
9. 構造payload查看前臺源碼發現t_ua字段是http User-Agent的值,參數嘗試抓包改包,構造參數
14.沒有環境
15.直接看源碼吧沒試出來
看到這個函數百度一下是文件包含的一個類,選擇包含還要沒尖括號選擇包l2的
16.查看原碼,發現輸入的東西經過了大小寫的轉換并且通過四次的替換檢查,分別對script,空格,/,進行了替換,但尖括號沒有被替換。
可以使用img標簽,,可以選擇%0d %0a 進行繞過,構造出最后的payload,
<img%0dsrc=1%0dοnerrοr=“alert(123)”>
17.打開源碼發現了兩個注入點構造payload
倆個輸出的值都被做了實體化轉義,無法閉合標簽,而 embed標簽可以加入事件,可以在arg01,或者arg02中加入事件去觸發
18.嘗試上次的payload直接彈窗
看輸出跟上一關一樣
19.后邊涉及到反編譯看了大哥的沒看懂,下去再研究一下payload :arg01=version&arg02=%3Ca%20href=%22javascript:alert(%27xss%27)%22%3E111%3C/a%3E
20.payload為arg01=id&arg02=%22))}catch(e){}if(!self.a)self.a=!alert(/xss/)//%26width%26height
總結
以上是生活随笔為你收集整理的xss labs 挑战之旅的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python生兔子问题(递归算法)_兔子
- 下一篇: BERT: 理解上下文的语言模型