<
=''?>
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进制字符串运行代码