New XSS Bypass!

簡(jiǎn)介

逛推特突然看到Jackson大佬的xss繞過(guò)思路,挺有意思

上Payload

  payload:<svg onload=alert%26%230000000040"1")>

漏洞原理:

alert%26%230000000040等價(jià)于(

這個(gè)payload分為三部分

alert() //html里面的一個(gè)一個(gè)DOM 方法
%26%23  //html編碼等價(jià)于"&#"
0000000040  //就是40

其中的關(guān)鍵就在于,%26%230000000040這個(gè),他等價(jià)于"("閉合了后面的")",所以形成了這個(gè)XSS Bypass

但是為啥&#40回等價(jià)于"("呢。

因?yàn)槭褂昧薔CR的方式,使現(xiàn)實(shí)字符實(shí)體名稱或不被瀏覽器支持的一些實(shí)體被瀏覽器顯示,先找到字符對(duì)應(yīng)的UNICODE編碼,以小于號(hào)為例,unicode編碼16進(jìn)制為3C(10進(jìn)制為60),在html則可以使用&#x3C或&#60,跟上面的表格對(duì)照看是否相同,由此我們也可以知道,如果我們的html所采用的編碼不支持一些字符(比如其他國(guó)家的字符),則可以通過(guò)NCR來(lái)引入我們的頁(yè)面就不會(huì)亂碼了。

NCR:
Google了一下,這東西專業(yè)名稱叫numeric character reference(NCR),直譯就是數(shù)字字符引用。一個(gè)Numeric Character Reference編碼是由一個(gè)與號(hào)(&)跟著一個(gè)井號(hào)(#),然后跟著這個(gè)字符的Unicode編碼值,最后跟著一個(gè)分號(hào)組成的,就像上面的例子一樣。

有了數(shù)字字符引用,就可以在網(wǎng)頁(yè)中顯示Unicode字符了,不用考慮html文件本身的編碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容