XSS测试用例与原理讲解脚本安全 -电脑资料

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

   

   

   

   

   

   

    <

   

   

   

   

   

   

   

   

   

   

   

   

   

   

   

    XSS

   

   

    a="get";

    b="URL(""";

    c="javascript.:";

    d="alert('XSS');"")";

    eval(a+b+c+d);

    6、XSS转码

    有攻就有防,网站程序员肯定不会放任大家利用XSS,所以他们常会过滤类似javascript的关键字符,让大家构造不了自己的XSS,我这里就捡两个被忽略惯了的字符来说,它们是"&"和"\".首先来说说"&"字符,玩过SQL注入

的都知道,注入的语句可以转成16进制再赋给一个变量运行,XSS的转码和这个还真有异曲同工之妙,原因是我们的IE浏览器默认采用的是UNICODE编码,HTML编码可以用&#ASCII方式来写,这种XSS转码支持10进制和16进制,SQL注入转码是将16进制字符串赋给一个变量,而XSS转码则是针对属性所赋的值,下面我就拿示例:

   

    lert('XSS');"> //10进制转码

   

    t:alert('XSS');"> //16进制转码,

XSS测试用例与原理讲解脚本安全

电脑资料

XSS测试用例与原理讲解脚本安全》(https://www.unjs.com)。

    这个&#分隔符还可以继续加0变成“j” ,“j” ,“j” ,“j”等形式。

    而这个"\"字符却暴露了一个严重的XSS 0DAY漏洞,这个漏洞和CSS(Cascading Style. Sheets)层叠样式表有很大的关联,下面我就来看看这个漏洞,先举个javascript的eval 函数的例子,官方是这样定义这个函数:

    eval(codeString),必选项 codestring 参数是包含有效 JScript. 代码的字符串值。这个字符串将由 JScript. 分析器进行分析和执行。

    我们的JavaScript中的"\"字符是转义字符,所以可以使用"\"连接16进制字符串运行代码

   

最新文章