首页 资讯 数码 查看内容

Javascript:无数字、无英文字母的运行代码

2016-7-19 09:16 1093 0

摘要: 本文将为大家介绍执行无数字、无英文字母的Javascript运行代码。作者决定试着执行无数字、英文字母的javascript代码。几年前作者在一次展示中写过一次无字母代码。我们可以使用类似的技术入侵Uber。在我上一次深入研 ...

本文将为大家介绍执行无数字、无英文字母的Javascript运行代码。

作者决定试着执行无数字、英文字母的javascript代码。几年前作者在一次展示中写过一次无字母代码。我们可以使用类似的技术入侵Uber。

在我上一次深入研究之后,浏览器领域已经发生了一些改变,有趣的功能有模板文本和数组对象的查找功能。模板功能很有用,因为你可以在没有括号的情况下调用函数,查找功能可以使用“未定义”生成,因此比原始方法“筛选器”要简短得多。


无字母运行的基础就是使用javascript对象来生成最终允许代码执行的字符串。举个例子,+[]在javascript中创建了一个0,[][[]]创建未定义。通过转换对象,比如将未定义转换到一个[[][[]]+[]][+[]]的字符串,这样我们就可以重复使用这些字符,然后访问其他对象。如果我们想要调用任意代码,需要调用一个函数的函数性质,就像这个 [].find.constructor('(1)')()。

所以第一个任务就是生成“查找”字符串,我们需要生成数字以获得正确的索引定义字符串。下面是生成数字1的方法。

1
+!+[]//1

基本上这些代码都是用来创建0!,因为0在javascript中是假的含义,然后+是使之真正成为1的中缀运算符。接着我们需要创建上文所述的未定义字符串,之后把这些数字加起来获得四次指数。下面是生成“f”的方法。

1
[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]]//f

下面我们需要做的就是增减指数来生成其他字母。

1
2
3
[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]+!+[]]//i
[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]//n
[[][[]]+[]][+[]][!+[]+!+[]]//d

现在我们需要合并字符和访问数组文本中的“查找”功能。

1
[][[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]]+[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]+!+[]]+[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[[][[]]+[]][+[]][!+[]+!+[]]]//find function

这给了我们更多的字符,查找功能的toString值就是find() {[native code]}函数,这里最重要的一个字符就是“c”。我们可以使用上面的代码得到查找函数并将其转换为一个字符串,然后得到相应的指数。

1
[[][[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]]+[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]+!+[]]+[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]+[[][[]]+[]][+[]][!+[]+!+[]]]+[]][+[]][!+[]+!+[]+!+[]]//c

现在继续,使用“对象”得到“构造函数”的其他字符,正确、错误,然后将它们转换为字符串。

1
2
3
4
5
6
7
8
9
10
[[]+{}][+[]][+!+[]]//o
[[][[]]+[]][+[]][!+[]+!+[]+!+[]+!+[]+!+[]+!+[]]//n
[![]+[]][+[]][!+[]+!+[]+!+[]]//s
[!![]+[]][+[]][+[]]//t
[!![]+[]][+[]][+!+[]]//r
[[][[]]+[]][+[]][+[]] 声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论