xss跨站脚本攻击 毕业论文.docx

上传人:聆听****声音 文档编号:1979805 上传时间:2023-05-02 格式:DOCX 页数:18 大小:277.57KB
下载 相关 举报
xss跨站脚本攻击 毕业论文.docx_第1页
第1页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第2页
第2页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第3页
第3页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第4页
第4页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第5页
第5页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第6页
第6页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第7页
第7页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第8页
第8页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第9页
第9页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第10页
第10页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第11页
第11页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第12页
第12页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第13页
第13页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第14页
第14页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第15页
第15页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第16页
第16页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第17页
第17页 / 共18页
xss跨站脚本攻击 毕业论文.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

xss跨站脚本攻击 毕业论文.docx

《xss跨站脚本攻击 毕业论文.docx》由会员分享,可在线阅读,更多相关《xss跨站脚本攻击 毕业论文.docx(18页珍藏版)》请在冰点文库上搜索。

xss跨站脚本攻击 毕业论文.docx

深圳技师学院

毕业设计(论文)

论 文 题 目 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

向网页代码中嵌入以下代码,则弹出一对话框

">

图7

结论:

以上实验效果简单,但跨站攻击远不止实验效果这么简单。

黑客可以充分利用留言簿程序漏洞,提交经过精心构造的代码,然后欺骗管理员访问,从而达到盗取管理员Cookie、提升权限等各种恶意目的。

2.利用XSS盗取cookies

在一个有漏洞的页面插入下面的代码,例如一个留言本里

(www.H=攻击者的网站)

用记事本新建文件:

cookie.php,把下面的代码拷贝到文件里来。

DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http:

//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

//www.w3.org/1999/xhtml">

Error

--

body,td,th{

color:

#FFFFFF;

}

body{

background-color:

#000000;

}

-->

mail('email@','Cookiestealed!

-thxxyli:

)',

$cookies);?

>

Error-Accessdeniedfor

echo$_SERVER["REMOTE_ADDR"];?

>


这样是仅仅不够的,还要去等待收到电子邮件,阅读读盗取到的cookie。

3.上传文件进行XSS攻击

在画图工具里创建一个Haxored.gif图片,然后用记事本打开它,删除所有行并插入下面的内容:

GIF89a

保存并关闭它。

然后把Haxored.gif上传到一个免费的图片网站上,再查看你的图片,XSS就产生了……不要用MozilliaFirefox来浏览图片,因为MozilliaFirefox不能运行该脚本,该攻击适用于Internetexplorer浏览器。

为什么在脚本前面添加GIF89a呢?

一般上传图片会这样的,在各个.gif文件中检查是否包含'GIF89a'代码。

这个通过检查文件GIF89a代码对上传结果进行确认的漏洞,并没有检查图片里的恶意代码。

GIF89a

要了解其他图片格式的文件代码,只需要使用文件编辑器打开.jpg及其它格式的图片就可以知道了,例如一个png格式的文件:

‰PNG

PNG=‰PNGGIF=GIF89a

JPG=ÿØÿàJFIFBMP=BMFÖ

为了安全不能仅仅依靠getimagesize()函数来检查图片。

三、XSS攻击的防御

XSS攻击防范主要是有程序漏洞造成的,要完全防止XSS安全漏洞主要依靠程序员较高的编程能力和安全意识,当然一些编程安全原则可以帮助大大减少XSS安全漏洞。

目前对XSS漏洞的防御一般有两种方式。

第一种方式就是代码修改,对用户所有提交内容进行验证,包括URL、查

询关键字、HTTP头、POST数据等。

而且仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。

接下来就是实现Session

标记、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。

后一步就是确认接收的内容被妥善地规范化,仅包含最小的、安全的标记,去掉任何对远程内容的引用,使用HTTP的Cookie。

不过,这种方法将降低Web业务的交互能力,用户仅能提交少量指定的字符,不适应那些交互性要求较高的业务系统。

而且Web业务的编码人员很少有受过正规的安全培训,即便是专业的安全公司,由于侧重点的不同,也很难完全避免XSS。

2008年1月,的一份报告指出:

McAfee、Symantec、VeriSign这三家安全公司的官方站点存在约30个XSS漏洞。

第二种方式就是部署专业的防御设备,目前较为流行的有入侵防御产品,利用的就是入侵防御产品对应用层攻击的检测防御能力。

用户在选择相应的产品之前,最好先了解一下相关产品的XSS、SQL注入等Web威胁的检测方式。

有一些入侵防御产品采用的还是传统的特征匹配方法,如对经典的XSS攻击——IMGSRC="JavaScript:

alert('XSS');"——来说,就是定义“JavaScript”这个关键字进行检索,一旦发现提交信息中包含“JavaScript”,就认定为XSS攻击。

1.基于特征的防御

XSS漏洞和著名的SQL注入漏洞一样,都是利用了Web页面的编写不完善,所以每一个漏洞所利用和针对的弱点都不尽相同。

这就给XSS漏洞防御带来了困难:

不可能以单一特征来概括所有XSS攻击。

传统XSS防御多采用特征匹配方式,在所有提交的信息中都进行匹配检查。

对于这种类型的XSS攻击,采用的模式匹配方法一般会需要对“javascript”这个关键字进行检索,一旦发现提交信息中包含“javascript”,就认定为

XSS攻击。

这种检测方法的缺陷显而易见:

骇客可以通过插入字符或完全编码的方式躲避检测:

躲避方法1)在javascript中加入多个tab键,得到

alert('XSS');">;

躲避方法2)在javascript中加入 编码字符,得到

alert('XSS');">;

躲避方法3)在javascript中加入

字符,得到

alert('XSS');">;

躲避方法4)在javascript中的每个字符间加入回车换行符,得到

\nt\r\n:

alert('XSS');">

躲避方法5)对"javascript:

alert('XSS')"采用完全编码,得到

上述方法都可以很容易的躲避基于特征的检测。

而除了会有大量的漏报外,

基于特征的

还存在大量的误报可能:

在上面的例子中,对"URL,由于包含了关键字“javascript”,也将会触发报警。

2.基于代码修改的防御

和SQL注入防御一样,XSS攻击也是利用了Web页面的编写疏忽,所以还有一种方法就是从Web应用开发的角度来避免:

步骤1、对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、POST数据等,仅接受指定长度范围内、采用适当格式、采用所预期的字符的内容提交,对其他的一律过滤。

步骤2、实现Session标记(sessiontokens)、CAPTCHA系统或者HTTP引用头检查,以防功能被第三方网站所执行。

步骤3、确认接收的的内容被妥善的规范化,仅包含最小的、安全的Tag(没有javascript),去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTPonly的cookie。

当然,如上操作将会降低Web业务系统的可用性,用户仅能输入少量的制定字符,人与系统间的交互被降到极致,仅适用于信息发布型站点。

并且考虑到很少有Web编码人员受过正规的安全培训,很难做到完全避免页面中的XSS漏洞

3.web用户

1.在电子邮件或者即时通讯软件中点击链接时需要格外小心:

留心可疑的过长链接,尤其是它们看上去包含了HTML代码。

如果对其产生怀疑,可以在浏览器地址栏中手工输入域名,而后通过该页面中的链接浏览你所要的信息。

2.对于XSS漏洞,没有哪种web浏览器具有明显的安全优势。

也就是Firefox也同样不安全。

为了获得更多的安全性,可以安装一些浏览器插件:

比如Firefox的NoScript或者Netcraft工具条。

3.世界上没有“100%的有效”。

尽量避免访问有问题的站点:

比如提供hack信息和工具、破解软件、成人照片的网站。

这些类型的网站会利用浏览器漏洞并危害操作系统。

4.web

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2