xss跨站脚本攻击 毕业论文.docx
《xss跨站脚本攻击 毕业论文.docx》由会员分享,可在线阅读,更多相关《xss跨站脚本攻击 毕业论文.docx(18页珍藏版)》请在冰点文库上搜索。
深圳技师学院
毕业设计(论文)
论 文 题 目 XSS跨站脚本攻击学 院 深圳技师学院
专 业 网络工程
年 级 网络技术G-5
姓 名 指 导 教 师
( 年 12 月)深圳技师学院
XSS攻击
摘要
XSS又叫CSS(CrossSiteScript),跨站脚本攻击。
跨站脚本攻击以访问服务器的客户端为攻击目标,通过恶意脚本向第三方站点发送用户的信息。
跨站脚本攻击是继SQL注入攻击后最为常用的攻击手段。
XSS本质上是Web应用服务的漏洞,主要的攻击方法分别是在Web应用程序中偷cookie、利用iframe或frame存取管理页面或后台页面、利用XMLHttpRequest存取管理页面或后台页面。
关键字:
XSS攻击 网络 跨站脚本攻击
Abstract
XSSalsocalledCSS(CrossSiteScript),CrossSitescriptingattack.Crosssitescriptingattacksinaccessserverclientfortheattacktarget,throughmaliciousscripttoathirdpartysitespassesuserinformation.CrosssitescriptingattackisthemostcommonlyusedSQLinjectionattackaftertheattackmeans.XSSisessentiallyaWebapplicationserviceloophole,mainmethodofassaultrespectivelyisinWebapplicationstostealcookie,usingiframeorframeaccessmanagementpageorbackgroundpage,utilizationXMLHttpRequestaccessmanagementpageorbackgroundpage.
Keyword:
XSSattacks network CrossSiteScripting
第6页共18页
目 录
摘要 2
一、背景 4
1.什么是XSS攻击 4
2.XSS攻击的危害 4
3.XSS的攻击方式 4
4.XSS漏洞的类型 4
5.XSS攻击漏洞 5
二、XSS攻击实现 6
1.实施入侵 7
2.利用XSS盗取COOKIES 11
3.上传文件进行XSS攻击 12
三、XSS攻击的防御 12
1.基于特征的防御 13
2.基于代码修改的防御 14
3.WEB用户 14
4.WEB应用开发者 14
5.防御建议 15
总结 16
致谢 16
参考文献 16
附录 16
一、背景
XSS攻击作为Web业务的最大威胁之一,不仅危害Web业务本身,对访问Web业务的用户也会带来直接的影响,如何防范和阻止XSS攻击,保障Web站点的业务安全呢?
首先我们就要了解什么是XSS攻击。
1.什么是XSS攻击
XSS又叫CSS(CrossSiteScript),跨站脚本攻击,为不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆。
故将跨站脚本攻击缩写为XSS。
它是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
比如这些代码包括HTML代码和客户端脚本。
攻击者利用XSS漏洞旁路掉访问控制——例如同源策
略(sameoriginpolicy)。
XSS属于被动式的攻击,因为其被动且不好利用,所以许多人常呼略其危害性。
而事实上很多黑客在入侵服务器时使用的正
是跨站脚本攻击。
对于跨站脚本攻击,黑客界共识是:
跨站脚本攻击是新型的“缓冲区溢出攻击”,而JavaScript是新型的“ShellCode”。
2.XSS攻击的危害
1)盗取各类用户账号,如机器登录账号、用户网银账号、各类管理员账号
2)控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3)盗窃企业重要的具有商业价值的资料
4)非法转账
5)强制发送电子邮件
6)网站挂马
7)控制受害者机器向其它网站发起攻击
3.XSS的攻击方式
跨站攻击有多种方式,由HTML语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML代码——例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。
当然,攻击者有时也会在网页中加入一些
以.JS或.VBS为后尾名的代码时,在我们浏览时,同样我们也会被攻击到。
4.XSS漏洞的类型
XSS漏洞按照攻击利用手法的不同,有以下三种类型:
类型1,本地利用漏洞,这种漏洞存在于页面中客户端脚本自身。
其攻击过程如下所示:
A给B发送一个恶意构造了Web的URL。
B点击并查看了这个URL。
恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在B
电脑上。
具有漏洞的HTML页面包含了在B电脑本地域执行的JavaScript。
A的恶意脚本可以在B的电脑上执行B所持有的权限下的命令。
类型2,反射式漏洞,这种漏洞和类型1有些类似,不同的是Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
其攻击过程如下:
A经常浏览某个网站,此网站为B所拥有。
B的站点运行A使用的用户名/
密码进行登录,并存储敏感信息(比如银行账户信息)。
C发现B的站点包含反射性的XSS漏洞。
C编写一个利用漏洞的URL,并将其冒充为来自B的邮件发送给A。
A在登录到B的站点后,浏览C提供的URL。
嵌入到URL中的恶意脚本在A的浏览器中执行,就像它直接来自B的服务器一样。
此脚本盗窃敏感信息(授权、信用卡、账号信息等)然后在A完全不知情的情况下将这些信息发送到C的Web站点。
类型3,存储式漏洞,该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,骇客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
其攻击过程如下:
B拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。
C注意到B的站点具有类型3的XXS漏洞。
C发布一个热点信息,吸引其它用户纷纷阅读。
B或者是任何的其他人如A浏览该信息,其会话cookies或者其它信息将被C盗走。
类型1直接威胁用户个体,而类型2和类型3所威胁的对象都是企业级Web应用,目前天清入侵防御产品所能防范的XSS攻击包括类型2和类型3。
5.XSS攻击漏洞
XSS攻击分成两类,一类是来自内部的攻击,主要指的是利用程序自身的漏洞,构造跨站语句,如:
dvbbs的showerror.asp存在的跨站漏洞。
另一类则是来自外部的攻击,主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。
如当我们要渗透一个站点,我们自己构造一个有跨站漏
洞的网页,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。
总结一下几个可能会出现漏洞的地方:
1、搜索引擎
2、留言板
3、错误页面
4、通过在上面那些类型的页面输入一些特殊的字符(包括<>/"),如:
?
jjkk>,然后在结果页中的源码处搜索是否存在原样的:
?
jjkk>,如果存在,恭喜你,发现了一个XSS漏洞。
二、XSS攻击实现
XSS攻击的过程涉及以下三方:
攻击者、受害者、存在漏洞的网站(攻击者可以使用它对受害者采取行动).在这三方之中,只有受害者会实际运行攻击者的代码。
网站仅仅是发起攻击的一个载体,一般不会受到影响。
可以用多种方式发起XSS攻击。
XSS允许攻击者通过利用因特网服务器的漏洞来发送恶意代码到其他用户。
攻击者利用XSS攻击向那些看似可信任的链接中注入恶意代码。
当用户点击了链接后,内嵌的程序将被提交并且会在用户的电脑上执行,这会使黑客获取访问权限并偷走敏感数据。
攻击者使用XSS来攻击受害者机器上的漏洞并且传输
恶意代码而不是攻击系统本身。
通过用户输入的数据返回错误消息的Web表格,攻击者可以修改控制Web页面的HTML代码。
黑客能够在垃圾信息中的链接里插入代码或者使用欺诈邮件来诱使用户对其身份产生信任。
例如攻击者可以发送带有URL的邮件给受害人,这个URL指向一个Web站点并且提供浏览器脚本作为输入;或者在博客或诸如Facebook、Twitter这样的社交网站上发布恶意URL链接。
当用户点击这个链接时,该恶意站点以及脚本将会在其浏览器上运行。
浏览器不知道脚本是恶意的并将盲目地运行这个程序,这转而允许攻击者的浏览器脚本使用站点的功能来窃取cookie或者冒充合法的用户来完成交易。
XSS攻击数据流程:
前面我们已经了解XSS的基本概念和类型,这里看看如何进行攻击。
先总结一下常见的XSS攻击手法:
1依赖跨站漏洞,需要在被攻击网站的页面种入XSS脚本的手法
XSS攻击
Cookie盗取,通过JavaScript获取被攻击网站种下的cookie,并发送给攻击者。
Comment[it1]:
数字
.2.2模拟用户完成多页表单。
.2.1从ajex结果中获取隐私。
.2Ajex信息盗取,通过JavaScript发起ajex请求。
.1.2.利用cookie伪造session,发起重放攻击
1.1.1从cookie中提取密码等隐私
1
1
1
1
cript.src的方法发起跨站访问并拿到服务器的返回值。
.2 双向HTTP 动作,如果服务器产生一段动态的script,那么可以用
权操作。
但是很难拿到服务器的返回值。
.1单向HTTP动作,通过img.src等方法发起跨站访问,冒充被攻击者执行
2不依赖跨站漏洞的XSS攻击手法
2
特
2
s
1.实施入侵
跨站脚本攻击最典型的形式就是在网站有发表帖子和评论等处使用精心构
造的HTML代码提交数据,从而达到恶意攻击的目的。
举个例子如下实验过程图,在某网站发表评论,其中用户名、标题、内容等可尝试填写代码:
。
增加“留言”后,当管理员查看留言时,浏览器会自动弹出消息警告框“XSS”,这就表明留言主题处的程序代码没有对主题变量参数进行任何安全处理,很可能存在跨站漏洞。
这就是典型的跨站脚本攻击示例。
当然跨站攻击远不止弹出一个警告框这么简单。
黑客可以充分利用留言簿程序漏洞,提交经过精心构造的代码,然后欺骗管理员访问,从而达到盗取管理员Cookie、提升权限等各种恶意目的。
首先在虚拟机设置相关服务,网站名:
(1)DNS服务器创建””正向区域,创建主机(对应本机IP地址192.168.66.253),并创建相关的反向区域及添加相应的记录。
(2)创建WEB网站,站点的IP地址为192.168.66.253,端口号为80
站点属性如下:
第7页共18页
XSS攻击
图1
通过NSLOOKUP命令可以正确的解析(包括正向和反向解析),命令执行结果画面如下:
图2
第18页共18页
在IE浏览器中,使用192.168.66.253访问WEB站点,结果如下:
图3
在IE浏览器中,使用访问WEB站点,结果如下:
图4
在主机(IP地址为192.168.66.22)上Ping虚拟机(IP地址为192.168.66.253)测试连通性,结果如下:
图5
在IE浏览器中,使用访问WEB站点,结果如下:
图6
向网页代码中嵌入以下代码,则弹出一对话框
">
--
body,td,th{
color:
#FFFFFF;
}
body{
background-color:
#000000;
}
-->
mail('email@','Cookiestealed!
-thxxyli:
)',
$cookies);?
>
Error-Accessdeniedfor
echo$_SERVER["REMOTE_ADDR"];?
>