⑤XSS构造技巧
i) 利用字符编码:根据html页面所用编码类型,输入对应的值使其内容与安全代码联合起来被识别为一个新的字符,使安全检查失效从而实施XSS攻击。
ii) 绕过长度限制:当页面对输入内容有长度限制时,可以将XSS脚本写到别的文件中,再作为一个event加载到需要攻击的页面中。
或者当我们可以通过注释内容限制来进行XSS攻击。比如当有两个文本框时我们分别在两个框中输入内容并组成html的注释符,将文本限制注释掉以进行XSS攻击。
书中示例:
这样中间的代码就被<!--...-->注释掉了。
iii) 使用<base>标签:该标签可以定义页面上的所有使用“相对路径”标签的hosting地址,即在可以在页面的任何地方使用,并作用于其后的所有标签。
攻击者如果在页面中插入了标签,就可以通过在远程服务器上伪造图片、链接或脚本,劫持当前页面中的所有使用“相对路径”的标签。目前使用较少。
iv) window.name:window对象的name属性的特征为:在一个窗口中,所有页面都是共享name属性,并且可以对其拥有读写权限的。而且该属性持久存在在窗口中,不会被重置。
所以可以使用该属性跨域/页面获取数据。
有关以上内容的扩展阅读:
⑥ 其余看似不可能但可以被利用的漏洞
一些被认为无法利用被人忽视的漏洞随着时间推移找到了新的利用方法,其中部分已被人们认可并进行修复。比如:
i) Apache Expect XSS
ii) 反射型XSS嵌套在存储型XSS中使用
iii) 基于FLASH的XSS:容易被忽视,一般的扫描工具不易发现。OWASP单独为FLASH建了一个wiki页面便于查看
iv) JavaScript框架的漏洞:比如出名的jQuery就曾有过安全考虑不足的设计。成熟的开发框架漏洞会很少,所以开发人员也得具有相当的安全意识。
在jQuery中有一个html()方法。这个方法如果没有参数,就是读取一个DOM节点的inner-HTML;如果有参数,则会把参数值写入该DOM节点的innerHTML中。这个过程中有可能产生“DOM Based XSS”。
扩展阅读:
除了以上提及漏洞外,每年的TOP web安全漏洞可见:OWASP官网
开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个组织,它提供有关计算机和互联网应用程序的公正、实际、有成本效益的信息。其目的是协助个人、企业和机构来发现和使用可信赖软件。