[技巧收藏]javascript大小写转换的特性

这里做个记录

这种特性可以用于绕过XSS等(可能一些CTF中会遇到这种奇葩)

JavaScript的toUpperCase()和toLowerCase()2个函数在转换时,会出现一些特殊字符也会转成字母的(大小写)

比如:"ı".toUpperCase() == 'I'  这里不是"i"

为了看清楚 如下图:

我们可以清除的看到 这个i的ascii码是105  而另一个是305

FUZZ就不必了 大神已经搞完了 这里只是记录

toUpperCase()转大写时有下面2个字符
"ı".toUpperCase() == 'I'    ascii码:305

"ſ".toUpperCase() == 'S'    ascii码:383
toLowerCase()转小写也有2个字符"".toLowerCase() == 'k'
"".charCodeAt() = 8490 这是个闪光的K
而真正的K是75的ascii
0130 String.fromCharCode(0130).toLowerCase() == 'x' 返回为真 可以测试

在原文的评论中有大牛提到

toLowerCase()还有个U+0130(这个已经添加到前面了)

 

参考:

http://zone.wooyun.org/content/15388

 

posted @ 2014-10-09 14:24  K1ra8  阅读(421)  评论(0编辑  收藏  举报