仅用 []()+! 就足以实现几乎任意Javascript代码

G Reader里Dexter同学的分享,来自sla.ckers.org的又一神作

点我测试

GReader里看不到效果的同学请自行测试下列HTML:

<script language="javascript" type="text/javascript">
([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()[(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]])([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()[(![]+[])[+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()+[])[!+[]+!+[]]]((![]+[])[+!+[]]+(+[![]]+[])[+[]])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[+[]]+[][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()[(![]+[])[+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]()+[])[!+[]+!+[]]]((![]+[])[+!+[]]+(+[![]]+[])[+[]])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]])
</script>

在线转换工具

跟Brainfuck有的一拼。。。是挂马的好办法。。。

更新:研究了一下它实现的原理,有一个码表:

    (NaN+[]["filter"])[11]',
! window["atob"]("If")[0]',
" ("").fontcolor()[12]',
# window["atob"]("0iN")[1]',
$ window["atob"]("0iT")[1]',
% window["atob"]("0iW")[1]',
& window["atob"]("0ia")[1]',
' window["atob"]("0if")[1]',
( (false+[]["filter"])[20]',
) (false+[]["filter"])[21]',
* window["atob"]("0ir")[1]',
+ window["atob"]("0it")[1]',
, window["atob"]("0iy")[1]',
- (NaN+window["Date"]())[31]',
. window["atob"]("1i4")[1]',
/ (true+("")["sub"]())[10]',
0-9 ignored*/ ,,,,,,,,,,
: window["Date"]()[21]',
; window["atob"]("O0")[0]',
< ("")["sub"]()[0]',
= ("").fontcolor()[11]',
> ("")["sub"]()[10]',
? window["atob"]("0j9")[1]',
@ window["atob"]("00A")[1]',
A (+[]+[]["constructor"])[10]',
B (+[]+(false)["constructor"])[10]',
C window["atob"]("00N")[1]',
D window["btoa"](00)[1]',
E window["btoa"](01)[2]',
F (0+[]["filter"]["constructor"])[10]',
G window["btoa"]("0f")[1]',
H window["btoa"]("0t")[1]',
I ("Infinity")[0]',
J window["atob"]("00r")[1]',
K window["btoa"]("(")[0]',
L window["btoa"]("/")[0]',
M window["btoa"](0)[0]',
N ("NaN")[0]',
O window["btoa"](8)[0]',
P window["btoa"]("<")[0]',
Q window["btoa"]("a")[1]',
R window["atob"]("01I")[1]',
S window["btoa"]("I")[0]',
T window["btoa"]("N")[0]',
U window["atob"]("01W")[1]',
V window["atob"]("01a")[1]',
W (true+window)[12]',
X window["atob"]("01i")[1]',
Y window["btoa"]("a")[0]',
Z window["btoa"]("f")[0]',
[ (undefined+[]["filter"])[33]',
\ window["atob"]("01y")[1]',
] (true+[]["filter"])[40]',
^ window["atob"](014)[1]',
_ window["atob"](018)[1]',
` window["atob"]("02A")[1]',
a ("false")[1]',
b (window+[])[2]',
c ([]["filter"]+[])[3]',
d ("undefined")[2]',
e ("true")[3]',
f ("false")[0]',
g ([]+("")["constructor"])[14]',
h window["atob"]("aN")[0]',
i ([false]+undefined)[10]',
j (window+[])[3]',
k window["atob"]("a0")[0]',
l ("false")[2]',
m (Number+[])[11]',
n ("undefined")[1]',
o (true+[]["filter"])[10]',
p window["atob"]("cN")[0]',
q window["atob"]("cf")[0]',
r ("true")[1]',
s ("false")[3]',
t ("true")[0]',
u ("undefined")[0]',
v (0+[]["filter"])[30]',
w ([]["sort"]["call"]()+[])[13]',
x window["atob"]("eN")[0]',
y (NaN+[Infinity])[10]',
z window["atob"]("et")[0]',
{ (NaN+[]["filter"])[21]',
| window["atob"]("03y")[1]',
} (NaN+[]["filter"])[41]',
~ window["atob"](234)[1]'

拼接出来字符串 "eval",如何把 "eval" 变成 eval() 呢?方法是

[]["sort"]["call"]()["eval"]

其中 []["sort"]["call"]() 等于 [].sort.call() ,等价于 window,所以上面 []["sort"]["call"]()["eval"] 就等价于 window.eval

然后就是体力活了,把码表对应转换成 eval("blah blah") 这种形式就可以执行任意代码了

不同浏览器的码表不一样。 Chrome和Firefox的index就不一样。

其实这个码表还可以通过 ·toLocal*()` 函数族扩展到Unicode,比fromCharCode要简短 :D

转载于:https://www.cnblogs.com/pandora/archive/2010/02/27/1674833.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268302.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysqldump普通账号Got error: 1044

[rootSHCTC-GAME5-151 release1]# mysqldump -h10.10.4.51 -u user -p password db_name >/tmp/db.sqlmysqldump: Got error: 1044: Access denied for user user10.%.%.% to database db_name when using LOCK TABLESmysql使用普通用户备份出现&#xff1a;[rootxok.la]# m…

HTML第四章

第四章 初识CSS 1.什么是CSS&#xff1a; CSS全称&#xff08;Cascading Style Sheet&#xff09;风格样式表(Style Sheet)它是用来进行网页风格设计的。 2.CSS的优势&#xff1a; &#xff08;1&#xff09;内容与表现分离&#xff0c;也就是使用前面学习的HTML语言制作网页&a…

javascript :得到上星期的这一天日期

javascript :得到上星期的这一天日期 这个问题在项目中很常见呢,一般的查询都会有一些默认要求,比如日期在一个星期内.那么,怎么设置默认值.看起来很简单的一个问题,其实很容易走进误区.但extjs里有很好的实现,在util目录下的Date.js文件里.可以看一看,写得非常好.这里有一个简…

简单实现顶部固定,中部自适应布局

最近在重构web导航的时候就发现一个问题&#xff0c;如何实现顶部固定&#xff0c;中部自适应的布局。 很多人会认为这很简单啊&#xff0c;顶部使用position: fixed;就可以实现。 <!DOCTYPE html> <html lang"zh"><head><meta charset"UT…

mysql查询当年年份

DATE_FORMAT(CURRENT_DATE,%Y)

asp.net通用用户初始化类,登录后初始化,随时随地可以应用

大家在做项目的时候都需要使用登录者的用户信息&#xff0c;几乎每一个页面&#xff0c;每一次操作都需要用户的信息&#xff1b;我这设计一个类&#xff0c;叫做UserSession&#xff0c;代码如下&#xff1a; 1.UserSession类&#xff1a; /// </summary>[Serializable]…

codeforces 808d

Array Division 题意&#xff1a;给一个序列&#xff0c;问将一个数调换顺序能否使得序列分为连续的2段后&#xff0c;2段的和相同&#xff1b; 思路&#xff1a;模拟&#xff0c;注意一点&#xff0c;可能第一个数就大于sum/2&#xff0c;所以要1-n模拟一遍再n-1模拟一遍&…

MySQL 执行 PROCEDURE ANALYSE 报错 ERROR 1064 (42000)

1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near PROCEDURE ANALYSE() at line 1, Time: 0.000000s mysql 8.0.29已经没有 PROCEDURE ANALYSE()语法了

谷歌退出中国几成定局 谈判已谈崩

为什么80%的码农都做不了架构师&#xff1f;>>> 虽然GOOGLE之前曾自食其言&#xff0c;但在之后的谈判中无论是哪一方都十分强硬&#xff0c;毕竟中国不可能因为一个公司而改变自己的审查制度&#xff0c;哪怕是 GOOGLE也不会是个意外。 自春节前GOOGLE表示要退出中…

织梦dedecms默认网站地图sitemap.html优化

网站地图对于网站优化很重要&#xff0c;搜索引擎就是靠网站地图去收录网站页面&#xff0c;本文主要讲解优化织梦自带的网站地图功能。织梦自带的网站地图使用方法&#xff1a;织梦后台——生成——HTML更新——更新网站地图&#xff0c;可以在data目录下生成sitemap.html 。缺…

《WebForm开发系列之控件篇》Item2 ListBox

1. 属性列表&#xff1a; SelectionMode 组件中条目的选择类型&#xff0c;即多选(Multiple)、单选(Single) Rows 列表框中显示总共多少行 Selected 检测条目是否被选中 SelectedItem 返回的类型是ListItem&#xff0c;获得列表…

连接数据库的方法---ODBC

2012-12-10 11:50 (分类:计算机程序) 技术博客&#xff0c;对抗遗忘…… 1.ODBC Open Database Connectivity 1.1 简介&#xff1a;提供了一组对数据库访问的标准API&#xff08;应用程序编程接口&#xff09;&#xff0c;这些API利用SQL来完成其大部分任务。ODBC本身也提…

IDEA翻译插件Translate安装

1:安装插件 idea找到Plugins 输入Translate 点击installed 重启 2:翻译代码 选中代码&#xff0c;右键点击Translate 就能翻译了

代理类Proxy------ WeakHashMap----ReferenceQueue---- Reference

Proxy------ WeakHashMap----ReferenceQueue---- Reference转载于:https://www.cnblogs.com/yimian/p/7648544.html

看看你的网站有几个这样的链接?

为什么80%的码农都做不了架构师&#xff1f;>>> 这些要求都达到了&#xff0c;就是完美SEO的开始 1.pr大于3的链接 2.外链页面相关 3.永久型单向链接 4.外链必须是唯一的页面&#xff0c;不能是同一个ip下的 5.外链页面必须是静态页面 ..... 随机文章&#xff1a; …

UNICODE编程资料(转贴)

1. 如何取得一个既包含单字节字符又包含双字节字符的字符串的字符个数&#xff1f;可以调用Microsoft Visual C的运行期库包含函数_mbslen来操作多字节&#xff08;既包括单字节也包括双字节&#xff09;字符串。调用strlen函数&#xff0c;无法真正了解字符串中究竟有多少字符…

状态压缩DP入门

什么是状压DP&#xff1a; 动态规划的状态有时候比较恶心&#xff0c;不容易表示出来&#xff0c;需要用一些编码技术&#xff0c;把状态压缩的用简单的方式表示出来。 典型方式&#xff1a;当需要表示一个集合有哪些元素时&#xff0c;往往利用2进制用一个整数表示。 动态规…