刷知乎惊呆了,看到一个特别有意思的话题:JavaScript有哪些技巧和窍门?[1]看到一个大开眼界的答案,分享给大家。以下为正文:js是一门强大的语言。对于黑客来说,这是一个绕过WAF的强大工具。比如字母和数字没有被WAF屏蔽的情况下,可以这样玩:1=!+[]=++[[]][+[]]2=!+[]+!+[]=++[++[[]][+[]]][+[]]3=!+[]+!+[]+!+[]=++[++[++[[]][+[]]][+[]]][+[]]并且获取a的方法为false[1]或NaN[1]false=([![]]+[])//空数组,NOT,加上方括号,然后通过+[]=++[[]][+[]]//之前解释过,然后将其转换为string1,或者使用!+[]也可以。所以a可以这样表示:([![]]+[])[++[[]][+[]]]同理,l为false[2],等于([![]]+[])[++[++[[]][+[]]][+[]]]e为false[4],r和t由true得到,true为去掉NOTsymbolfromfalse,最后alert也是就是这样:(+[][+[]]+[])[++[[]][+[]]]+([![]]+[])[++[++[[]][+[]]][+[]]]+([!![]]+[])[++[++[++[[]][+[]]][+[]]][+[]]]+([!![]]+[])[++[[]][+[]]]+([!![]]+[])[+[]]和一些比较复杂的字母需要绕道而行。比如window对象的结构:(1,[].sort)()=windowsort的s传false,rt传true,o传[objectObject]所以window.alert(1)是下面的代码:([],[][([![]]+[])[++[++[++[[]][+[]]][+[]]][+[]]]+([]+{})[++[[]][+[]]]+([!![]]+[])[++[[]][+[]]]+([!![]]+[])[+[]]])()[(+[][+[]]+[])[++[[]][+[]]]+([![]]+[])[++[++[[]][+[]]][+[]]]+([!![]]+[])[++[++[++[[]][+[]]][+[]]][+[]]]+([!![]]+[])[++[[]][+[]]]+([!![]]+[])[+[]]](++[[]][+[]]"],[][([![]]+[])[++[++[++[[]][+[]]][+[]]][+[]]]+([]+{})[++[[]][+[]]]+([!![]]+[])[++[[]][+[]]]+([!![]]+[])[+[]]])()[(+[][+[]]+[])[++[[]][+[]]]+([![]]+[])[++[++[[]][+[]]][+[]]]+([!![]]+[])[++[++[++[[]][+[]]][+[]]][+[]]]+([!![]]+[])[++[[]][+[]]]+([!![]]+[])[+[]]")"作者RoyLi链接:https://www.zhihu.com/questio...”最后推荐一个有意思的网站,http://www.jsfuck.com/,看完这篇文章可以学到更多稀奇古怪的无用知识。我不感觉又涨知识了,有的话点赞,转发,我在看!
