跨站攻击
1基本概念
11背景
概述恶意攻击者往Web页面里插入恶意html代码当用户浏览该页之时嵌入其中Web里面的html代码会被执行从而达到恶意攻击用户的特殊目的。
事件国外的MYSPACHE站点曾经发生过这样一个事件一个叫samy
的人利用XSS漏洞写了世界上第一只跨站脚本蠕虫20小时内就传染了一百万个用户最后导致MySpace站瘫痪。
12定义
跨站攻击即CrossSiteScriptExecutio
为不和层叠样式表Cascadi
gStyleSheetsCSS的缩写混淆故将跨站脚本攻击缩写为XSS是指攻击者利用网站程序对用户输入过滤不足输入可以显示在页面上对其他用户造成影响的HTML代码从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。
简而言之跨站攻击的模式是指攻击者不与受害者直接发生联系而通过网络作为中介完成攻击。
业界对跨站攻击的定义如下“跨站攻击是指入侵者在远程WEB页面的HTML代码中插入具有恶意目的的数据用户认为该页面是可信赖的但是当浏览器下载该页面嵌入其中的脚本将被解释执行。”由于HTML语言允许使用脚本进行简单交互入侵者便通过技术手段在某个页面里插入一个恶意HTML代码例如记录论坛保存的用户信息Cookie由于Cookie保存了完整的用户名和密码资料用户就会遭受安全损失。如这句简单的Javascript脚本就能轻易获取用户信息alertdocume
tcookie它会
f弹出一个包含用户信息的消息框。入侵者运用脚本就能把用户信息发送到他们自己的记录页面中稍做分析便获取了用户的敏感信息。
对于跨站脚本攻击黑客界共识是跨站脚本攻击是新型的“缓冲区溢出攻击”而JavaScript是新型“ShellCode”。
13跨站攻击发生在什么时候
数据通过一个不可信的源大多数时是一个页面请求进入网站应用。
数据未经验证是否含有恶意内容就包含在动态内容中发送给网站用户。
发送到浏览器的恶意内容通常以一段Javascript脚本的形式存在但也可能是HTML、VBScript、ActiveX、Flash或者任何其他可能被浏览器执行的代码。基于XSS的攻击是多样化没有限制的常见的有传输私密数据像cookies或其他会话信息对攻击者而言重定向或引诱受害者到由攻击者所控制的页面或者伪装成可信赖网站直接在用户机器上执行恶意操作。
14跨站脚本漏洞的出现场景
输出在HTML页面
输出在HTML属性中
输出在JavaScript代码中
基于DOM
15跨站攻击基本原理
用户提交的变量没有经过完整过滤Html字符或者根本就没有经过过滤就放到了数据库中一个恶意用户提交的Html代码被其它浏览该网站的用户访问通过这些Html代码也就间接控制了浏览者的浏r