我在测试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,看起来几乎就是完全一模一样, 难怪我检查很多遍,仍然区分不开来!!!
也许他们本来就是完全一模一样的外观,只是底层不一样!!!