這里是目錄
- xss
- xss盲打
- xss之過濾
- xss之htmlspecialchars
- xss之href輸出
- xss之js輸出
大家好,我是小城,一個剛剛起步的學渣,笨鳥先飛,可惜我領悟得太晚,但從現在開始,我會努力加油進取變強!
xss
前文:pikachu xss合集(上)
xss盲打

在上面內容寫上我們的payload
<script>alert("xss")</script>
大名隨便寫上點什么然后提交

這樣其實也是一種存盤型的xss,只是我們并不知道我們的payload是否被成功執行了,在實際應用中,我們可以構造一潭訓取管理員cookies的陳述句,只要管理員點擊然后有回傳值,那么我們就可以知道是否被正確執行并成功獲取敏感資訊,
這時我們只要登錄管理員后臺看一下就知道了

可以看到,只要我們一登陸進來進入留言板后臺,里面立馬彈出彈窗,成功執行了我們構造的陳述句
xss之過濾

這個靶場考慮的是對陳述句的過濾,一般就是對關鍵字進行過濾決議,例如script、<>、xss和alert等關鍵字,
這題其實有很多解題的payload
payload 1: 將script的s大寫繞過對script的過濾,
注意,彈框不能英文字母,本題對英文字母也過濾了
<Script>alert(666)</Script>
payload 2: 因為是對script進行過濾,于是關鍵字不用script就行了
<img src=xx one rror=alert(666)>
<audio src=xx one rror=alert(666)>
以上兩個payload都可實作繞過
xss之htmlspecialchars

一開始什么都判斷不出來,我們可以隨便輸入個東西看看原始碼顯示了什么東西

可以看到的是,我們輸入的字符被嵌入到< a>標簽里的href里面去了,這時我們要想個辦法把href閉合起來,
而題目也提醒了我們,這道題是htmlspecialchars,那我們就先來了解一下htmlspecialchars函式,
htmlspecialchars()函式把預定義的字符轉換為HTML物體,
預定義的字符是:
&(和號)成為&
“(雙引號)成為"
‘(單引號)成為'
<(小于)成為< >( 大于)成為>
可用引導型別:
ENT_COMPAT-默認,僅編碼雙引號
ENT_QUOTES-編碼雙引號和單引號
ENT_NOQUO0TES-不編碼任何引導
htmlspecialchars默認不對 ’ 處理
使用單引號構造payload
'οnclick='alert(666)'

即可成功彈窗
此外,這道題只是過濾了雙引號、<>、和&,那我們不用它不就得了,構造其他的payload
javascript:alert(666)

也可順利通關
xss之href輸出


本體還是href輸出,跟上一題有點相像,不同的是,服務端進行了兩次關鍵的處理:
1. 輸入的時候只允許 http 或 https 開頭的協議,才允許輸出
2. 其次再進行htmlspecialchars處理
所以這道題連單引號也給阻隔掉了,那么我們就可以用上一題的payload,
javascript:alert(666)

成功通關!
xss之js輸出

本次靶場是xss之js,JavaScript方面的漏洞,我們可以試一下決議下它的代碼

可以看到,前端對我們傳入的引數進行一個if判斷,如果等于tmac就輸出xxx,不等于就輸出xxx,
這樣,我們可以輕而易舉地想到,如果我構造一個payload,將閉合掉前面< script>那么是不是就可以成功通關,
于是構造payload如下:
</script><script>alert(666)</script>

也是可以看到這次成功彈框了,完美打過了這個靶場
接下來也把我整理的一些常見的payload放上來,如下所示:
<script>alert("xss")</script>
<script>alert(document.cookie)</script>
<a href=javascript:alert(111)>
<body onl oad=alert('XSS')>
<img src=x one rror=alert(1)>
<div onclick="alert('xss')">
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/237196.html
標籤:其他
上一篇:攻防世界MISC新手區
