我在測試xss 的時候,我使用下面示範2 測試沒問題,而使用 示範1 測試就不行;
<a href="aaa" οnclick="alert(/xss/)">示範1</a> <a href="ggg" onclick="alert(/xss/)">示範2</a>
如下,可以看到,第二個是有 “event” 標誌的,點擊有彈框, 而第一個就沒有:
測試了半天,仍然始終死活不行!天啊, 爲什麼啊!
後面,拿到notepad++ 裏面,比較,發現了問題:
如上圖,可見,第一行的onclick 並沒有高亮, 說明它和第二第三是不一樣的!
只搜索到兩個, 而搜索第一個,只能搜索到一個!
而搜索 nclick, 搜索到3個!
說明了就是第一個字母o的區別了。 但是,兩者難道不是完全一樣的嗎? 把兩個字母放到不同的編輯器上,仍然看不出來區別...
會不會可能是 中文標點符號的問題? 排除了所有的空格之後,還是一樣的結果。可是第一個字母到底是什麼???..
bing上搜索一下吧:
而搜索第二個就明顯不一樣:
哦,我明白了!
原來是希臘字母 ο !它和英語的o,看起來幾乎就是完全一模一樣, 難怪我檢查很多遍,仍然區分不開來!!!
也許他們本來就是完全一模一樣的外觀,只是底層不一樣!!!