本文将为大家介绍执行无数字、无英文字母的Javascript运行代码。
作者决定试着执行无数字、英文字母的javascript代码。几年前作者在一次展示中写过一次无字母代码。我们可以使用类似的技术入侵Uber。
在我上一次深入研究之后,浏览器领域已经发生了一些改变,有趣的功能有模板文本和数组对象的查找功能。模板功能很有用,因为你可以在没有括号的情况下调用函数,查找功能可以使用“未定义”生成,因此比原始方法“筛选器”要简短得多。
无字母运行的基础就是使用javascript对象来生成最终允许代码执行的字符串。举个例子,+[]在javascript中创建了一个0,[][[]]创建未定义。通过转换对象,比如将未定义转换到一个[[][[]]+[]][+[]]的字符串,这样我们就可以重复使用这些字符,然后访问其他对象。如果我们想要调用任意代码,需要调用一个函数的函数性质,就像这个 [].find.constructor('(1)')()。
所以第一个任务就是生成“查找”字符串,我们需要生成数字以获得正确的索引定义字符串。下面是生成数字1的方法。
+!+[]
//1