XSS跨站脚本攻击
1、攻击原理
恶意浏览者构造巧妙的脚本恶意代码 通过网站功能存入到网站的数据库里面,如果程序没有经过过滤或者过滤敏感字符不严密就直接输出或者写入数据库,合法用户在访问这些页面的时候 程序将数据库里面的信息输出, 这些恶意代码就会被执行。
2、XSS漏洞的分类
- 本地利用漏洞,这种漏洞存在于页面中客户端脚本自身;
- 反射式漏洞,这种漏洞和类型A有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中;
- 存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
3、简单实例
实例1
分析: 对输入的文本没有进行过滤措施直接输出,可以闭合前面的输出语句,再写alert语句,然后用//屏蔽掉后面的引号
实例2
function escape(input) {
// warm up
// script should be executed without user interaction
return '<input type="text" value="' + input + '">';
}
分析:
对输入的文本没有进行过滤措施直接输出,可以闭合前面的 input 标签再构造 script 标签."><script>prompt(1)</script>