filter_var()函数
?
我們使用?payload?:?url=javascript://comment%250aalert(1)?,可以執(zhí)行?alert?函數(shù):
實(shí)際上,這里的?//?在JavaScript中表示單行注釋,所以后面的內(nèi)容均為注釋,那為什么會(huì)執(zhí)行?alert?函數(shù)呢?那是因?yàn)槲覀冞@里用了字符?%0a?,該字符為換行符,所以?alert?語句與注釋符?//?就不在同一行,就能執(zhí)行。當(dāng)然,這里我們要對(duì)?%?百分號(hào)編碼成?%25?,因?yàn)槌绦驅(qū)g覽器發(fā)來的payload:javascript://comment%250aalert(1)?先解碼成:?javascript://comment%0aalert(1)?存儲(chǔ)在變量?$url?中(上圖第二行代碼),然后用戶點(diǎn)擊a標(biāo)簽鏈接就會(huì)觸發(fā)?alert?函數(shù)。
?
?
?
返回值??
Returns the filtered data, or?FALSE?if the filter fails.
?
filter_var?: (PHP 5 >= 5.2.0, PHP 7)
功能?:使用特定的過濾器過濾一個(gè)變量
定義?:mixed?filter_var?(?mixed?$variable?[, int?$filter?= FILTER_DEFAULT [,?mixed?$options?]] )
針對(duì)這兩處的過濾,我們可以考慮使用?javascript偽協(xié)議?來繞過。為了讓大家更好理解,請(qǐng)看下面的demo代碼
?
htmlspecialchars?:(PHP 4, PHP 5, PHP 7)
功能?:將特殊字符轉(zhuǎn)換為 HTML 實(shí)體
定義?:string?htmlspecialchars?( string?$string?[, int?$flags?= ENT_COMPAT | ENT_HTML401 [, string$encoding= ini_get("default_charset") [, bool?$double_encode?=?TRUE?]]] )
& (& 符號(hào)) =============== & " (雙引號(hào)) =============== " ' (單引號(hào)) =============== ' < (小于號(hào)) =============== < > (大于號(hào)) =============== >參考:[紅日安全]代碼審計(jì)Day2 - filter_var函數(shù)缺陷 - 先知社區(qū) https://xz.aliyun.com/t/2457
轉(zhuǎn)載于:https://www.cnblogs.com/NBeveryday/p/11301874.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的filter_var()函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 实现IButtonControl接口时,
- 下一篇: 一个程序员的创业失败教训