XSS完整版论文.docx

上传人:b****4 文档编号:5717986 上传时间:2023-05-09 格式:DOCX 页数:28 大小:981.14KB
下载 相关 举报
XSS完整版论文.docx_第1页
第1页 / 共28页
XSS完整版论文.docx_第2页
第2页 / 共28页
XSS完整版论文.docx_第3页
第3页 / 共28页
XSS完整版论文.docx_第4页
第4页 / 共28页
XSS完整版论文.docx_第5页
第5页 / 共28页
XSS完整版论文.docx_第6页
第6页 / 共28页
XSS完整版论文.docx_第7页
第7页 / 共28页
XSS完整版论文.docx_第8页
第8页 / 共28页
XSS完整版论文.docx_第9页
第9页 / 共28页
XSS完整版论文.docx_第10页
第10页 / 共28页
XSS完整版论文.docx_第11页
第11页 / 共28页
XSS完整版论文.docx_第12页
第12页 / 共28页
XSS完整版论文.docx_第13页
第13页 / 共28页
XSS完整版论文.docx_第14页
第14页 / 共28页
XSS完整版论文.docx_第15页
第15页 / 共28页
XSS完整版论文.docx_第16页
第16页 / 共28页
XSS完整版论文.docx_第17页
第17页 / 共28页
XSS完整版论文.docx_第18页
第18页 / 共28页
XSS完整版论文.docx_第19页
第19页 / 共28页
XSS完整版论文.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

XSS完整版论文.docx

《XSS完整版论文.docx》由会员分享,可在线阅读,更多相关《XSS完整版论文.docx(28页珍藏版)》请在冰点文库上搜索。

XSS完整版论文.docx

XSS完整版论文

跨站攻击

1基本概念

1.1背景

概述:

恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。

事件:

国外的MYSPACHE站点曾经发生过这样一个事件,一个叫samy的人利用XSS漏洞写了世界上第一只跨站脚本蠕虫,20小时内就传染了一百万个用户,最后导致MySpace站瘫痪。

1.2定义

跨站攻击,即CrossSiteScriptExecution(为不和层叠样式表(CascadingStyleSheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS)是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。

简而言之,跨站攻击的模式是指攻击者不与受害者直接发生联系,而通过网络作为中介完成攻击。

业界对跨站攻击的定义如下:

“跨站攻击是指入侵者在远程WEB页面的HTML代码中插入具有恶意目的的数据,用户认为该页面是可信赖的,但是当浏览器下载该页面,嵌入其中的脚本将被解释执行。

”由于HTML语言允许使用脚本进行简单交互,入侵者便通过技术手段在某个页面里插入一个恶意HTML代码,例如记录论坛保存的用户信息(Cookie),由于Cookie保存了完整的用户名和密码资料,用户就会遭受安全损失。

如这句简单的Javascript脚本就能轻易获取用户信息:

alert(document.cookie),它会弹出一个包含用户信息的消息框。

入侵者运用脚本就能把用户信息发送到他们自己的记录页面中,稍做分析便获取了用户的敏感信息。

对于跨站脚本攻击,黑客界共识是:

跨站脚本攻击是新型的“缓冲区溢出攻击”,而JavaScript是新型“ShellCode”。

1.3跨站攻击发生在什么时候?

-数据通过一个不可信的源,大多数时是一个页面请求,进入网站应用。

-数据未经验证是否含有恶意内容,就包含在动态内容中发送给网站用户。

发送到浏览器的恶意内容通常以一段Javascript脚本的形式存在,但也可能是HTML、VBScript、ActiveX、Flash或者任何其他可能被浏览器执行的代码。

基于XSS的攻击是多样化没有限制的,常见的有传输私密数据,像cookies或其他会话信息,对攻击者而言,重定向或引诱受害者到由攻击者所控制的页面,或者伪装成可信赖网站,直接在用户机器上执行恶意操作。

1.4跨站脚本漏洞的出现场景

•输出在HTML页面

•输出在HTML属性中

•输出在JavaScript代码中

•基于DOM

1.5跨站攻击基本原理

用户提交的变量没有经过完整过滤Html字符或者根本就没有经过过滤就放到了数据库中,一个恶意用户提交的Html代码被其它浏览该网站的用户访问,通过这些Html代码也就间接控制了浏览者的浏览器,就可以做很多的事情,如:

窃取敏感信息、引导访问者的浏览器去访问恶意网站等。

1.6跨站攻击的危害

Cross-SiteScripting(XSS)是一类注入问题,恶意脚本被注入到健康的、可信任的网站。

当一个攻击者通过一个网站应用程序,以浏览器端脚本的形式,给另一端的用户发送恶意代码时,XSS攻击就发生了。

攻击者使用XSS发送恶意脚本给一个不持怀疑态度的用户,用户端的浏览器没法知道脚本可不可信,从而执行该Javascript脚本。

因为浏览器认为该脚本来自于一个可信赖的网站,导致恶意脚本可以访问任何cookies信息、会话令牌、或者其他由浏览器保存的但由那个网站使用的敏感信息,甚至可以修改当前网页内容。

1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号

2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力

3、盗窃企业重要的具有商业价值的资料

4、非法转账

5、强制发送电子邮件

6、网站挂马

7、控制受害者机器向其它网站发起攻击

1.7跨站攻击的分类

跨站攻击基本可以分为以下几类:

1、持久型XSS,又称存储型XSS。

2、非持久型XSS,又称反射型XSS。

3、DOM-XSS,DOM(文档对象模型)。

持久型的XSS较第二、第三种XSS攻击的危害较大。

1、持久型XSS——最直接的危害类型

持久型XSS(Persistent)又叫做存储XSS(StoredXSS)或I-型XSS,它是指通过提交恶意数据到存储器(比如数据库、文本文件等),Web应用程序输出的时候是从存储器中读出恶意数据输出到页面的一类跨站脚本漏洞。

注入的脚本被永久的存储在了目标服务器中,比如数据库、论坛帖子、访问日志、留言评论等,除非数据库被重置或者恶意语句被人工删除。

受害者向服务器请求获取存储的信息时,就获得了这些恶意脚本。

持久型XSS多出现在Web邮箱、BBS、社区等从数据库读出数据的正常页面(比如BBS的某篇帖子中可能就含有恶意代码),由于不需要浏览器提交攻击参数,所以其危害往往大于非持久型XSS。

存储型XSS脚本攻击最为常见的场景就是在博客或新闻发布系统中,黑客将包含有恶意代码的数据信息直接写入文章或文章评论中,所有浏览文章或评论的用户,都会在他们客户端浏览器环境中执行插入的恶意代码。

存储型XSS脚本攻击是指Web应用程序会将用户输入的数据信息保存在服务端的数据库或其他文件形式中,网页进行数据查询展示时,会从数据库中获取数据内容,并将数据内容在网页中进行输出展示,因此存储型XSS具有较强的稳定性。

攻击过程如下:

●  Bob拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。

●  Charly注意到Bob的站点具有类型C的XSS漏洞。

●  Charly发布一个热点信息,吸引其它用户纷纷阅读。

●  Bob或者是任何的其他人如Alice浏览该信息,其会话cookies或者其它信息将被Charly盗走。

 

2、非持久型XSS——反射型跨站脚本漏洞,最普遍的类型。

非持久型XSS(Non-persistent)又叫做反射XSS(ReflectXSS)或II-型XSS,它是指那些浏览器每次都要在参数中提交恶意数据才能触发的跨站脚本漏洞。

注入脚本从网站服务器被反弹回来,比如错误消息、搜索结果、或者任何其他响应(这些响应完全或部分包含了用户在浏览器输入的内容)。

该类型只是简单地将用户输入的数据直接或未经过完善的安全过滤就在浏览器中进行输出,导致输出的数据中存在可被浏览器执行的代码数据。

由于此种类型的跨站代码存在于URL中,所以黑客通常需要通过诱骗或加密变形等方式,比如通过邮件或聊天软件,将存在恶意代码的链接发给用户,只有用户点击以后才能使得攻击成功实施。

当用户被引诱点击恶意链接,提交一个特别构造的表单、或浏览一个恶意站点,注入脚本传送到了脆弱站点并反射给用户的浏览器,浏览器认为该链接来自一个可信的服务器就执行了它。

主要用来窃取cookie。

一般来说,凡是通过URL传入恶意数据的都是非持久型XSS。

攻击过程如下:

●  Alice经常浏览某个网站,此网站为Bob所拥有。

Bob的站点运行Alice使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。

●  Charly发现Bob的站点包含反射性的XSS漏洞。

●  Charly编写一个利用漏洞的URL,并将其冒充为来自Bob的邮件发送给Alice。

●  Alice在登录到Bob的站点后,浏览Charly提供的URL。

●  嵌入到URL中的恶意脚本在Alice的浏览器中执行,就像它直接来自Bob的服务器一样。

此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在Alice完全不知情的情况下将这些信息发送到Charly的Web站点。

3、DOM-XSS——客户端脚本处理逻辑导致的安全问题

DOM是DocumentObjectModel(文档对象模型)的缩写。

据W3CDOM规范(http:

//www.w3.org/DOM/),DOM是一种与浏览器、平台、语言无关的接口,使得你可以访问页面其他的标准组件。

简单理解,我们把DOM认为是JavaScript输出的页面,基于DOM的跨站脚本漏洞就是出现在JavaScript代码中的漏洞。

DOM型XSS又称0-型xss。

攻击者提交的恶意数据并未显式的包含在web服务器的响应页面中,但会被页面中的JavaScript脚本以变量的形式来访问到,导致浏览器在渲染页面执行JavaScript脚本的过程中,通过DOM操作执行了变量所代表的恶意脚本。

这种也被归类为‘client-sidexss’。

前两类xss攻击中,服务器的响应页面中显式的包含了恶意内容,被归类为‘server-sidexss’。

以下是一段存在DOM类型跨站脚本漏洞的代码:

在JavaScript中window.location.search是指URL中?

之后的内容,document.write是将内容输出到页面。

于是,又是一个直接输出到页面的跨站脚本漏洞。

好,来构造攻击URL:

http:

//localhost/test2541.php?

但是查看网页源代码,源代码却没变。

这就是DOM,在浏览器的解析中改变页面结构。

这种特性检测DOM的跨站脚本漏洞带来了一点麻烦,因为它不能通过页面源代码来判断漏洞,给自动化漏洞检测带来了挑战。

基于DOM的XSS跨站脚本攻击是通过修改页面DOM节点数据信息而形成的XSS跨站脚本攻击。

不同于反射型XSS和存储型XSS,基于DOM的XSS跨站脚本攻击往往需要针对具体的javascriptDOM代码进行分析,并根据实际情况进行XSS跨站脚本攻击的利用。

1.8跨站攻击的方式

跨站攻击是一种较为简单的攻击模式,在使用中,通常可以划分为以下两种攻击方式。

1、内跨站(来自自身的攻击):

主要指的是利用程序自身的漏洞,构造跨站语句,如:

dvbbs的showerror.asp存在的跨站漏洞。

2、外跨站(来自外部的攻击):

主要指的自己构造XSS跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。

如当我们要渗透一个站点,我们自己构造一个有跨站漏洞的网页放在自己的服务器上,然后构造跨站语句,通过结合其它技术,如社会工程学等,欺骗目标服务器的管理员打开。

这一类攻击的威胁相对较低,至少ajax要发起跨站调用是非常困难的(你可能需要hack浏览器)。

2跨站攻击的应用

2.1基本应用

1.网络钓鱼,包括盗取各类用户账号;

2.窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作,如进行不当的投票活动等;

3.劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等;

4.强制弹出广告页面、刷流量等;

5.网页挂马;

6.进行恶意操作,例如任意篡改页面信息、删除文章等;

7.进行大量的客户端攻击,如DDoS攻击(分布式拒绝服务攻击)攻击;

8.获取客户端信息,例如用户的浏览历史、真实IP、开放端口等;

9.控制受害者机器向其他网站发起攻击;

10.结合其他漏洞,如CSRF漏洞,实施进一步作恶;

11.提升用户权限,包括进一步渗透网站;

12.传播跨站脚本蠕虫等;

13.利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。

……

2.2XSS攻击实例

为了搜集用户信息,攻击者通常会在有漏洞的程序中插入JavaScript、VBScript、ActiveX或Flash以欺骗用户。

一旦得手,他们可以盗取用户帐户,修改用户设置,盗取/污染cookie,做虚假广告等。

每天都有大量的XSS攻击的恶意代码出现。

(一)跨站脚本攻击三部曲

1.HTML注入。

所有HTML注入范例只是注入一个JavaScript弹出式的警告框:

alert

(1)。

2.做坏事。

如果您觉得警告框还不够刺激,当受害者点击了一个被注入了HTML代码的页面链接时攻击者能作的各种的恶意事情。

3.诱捕受害者。

(二)跨站脚本攻击事件

“微博病毒”攻击事件

回顾:

2011年6月28日晚,新浪微博出现了一次比较大的XSS攻击事件。

大量用户自动发送诸如:

“郭美美事件的一些未注意到的细节”,“建党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉团团高清普通话版种子”,“这是传说中的神仙眷侣啊”,“惊爆!

范冰冰艳照真流出了”等等微博和私信,并自动关注一位名为hellosamy的用户。

事件的经过线索如下:

20:

14,开始有大量带V的认证用户中招转发蠕虫

20:

30,某网站中的病毒页面无法访问

20:

32,新浪微博中hellosamy用户无法访问

21:

02,新浪漏洞修补完毕

“微博病毒”攻击事件分析

一、事件经过:

 

6月28日20时14分左右开始,新浪微博出现了一次比较大的XSS攻击事件。

大量用户自动发送诸如:

“郭美美事件的一些未注意到的细节”,“建党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉团团高清普通话版种子”,“这是传说中的神仙眷侣啊”,“惊爆!

范冰冰艳照真流出了”“可以监听别人手机的软件”等微博和私信,并自动关注一位名为hellosamy的用户。

很多微博用户在短时间内收到N多条私信,链接都是:

会影响到新浪微博的评论、翻页等基本功能。

涉及攻击包括加关注、发微博、发私信等功能。

事件的效果:

 

 以及

 

事件的经过线索如下:

20:

14,开始有大量带V的认证用户中招转发蠕虫

20:

30,中的病毒页面无法访问

20:

32,新浪微博中hellosamy用户无法访问

21:

02,新浪漏洞修补完毕

影响有多大:

32961(hellosamy在帐号被封前的好友数量)。

 

新浪声称:

基本定位了这次攻击的原因,微博广场页面有XSS漏洞,被植入了恶意JS脚本。

初步发现Chrome和Safari都没中招。

IE、Firefox未能幸免。

二、采用了什么样的攻击方法 

1、利用了新浪微博存在的XSS漏洞;

XSS分两种:

一种是「永久」的,常见的情况是输入框中的问题不进行过滤(striptags),导致script这种危险标签会被显示出来,别人访问这个页面,脚本会被执行。

这种非常严重,类似于今年人人网受到的XSS攻击,当时人人网整个站内信系统崩溃。

第二种是「反射」的,就像这次新浪微博,原因是某些网页的JS编写不是很规范,导致网址可以嵌入一个脚本执行。

一般认为这种危险系数较低,但是由于社交网络的特性,导致本身不高的危险,通过关系网被放大。

2、使用有道提供的短域名服务(这些网址目前已经“无害”);

例如,通过http:

//163.fm/PxZHoxn,将链接指向:

3、当新浪登陆用户不小心访问到相关网页时,由于处于登录状态,会运行这个js脚本做几件事情:

a.发微博(让更多的人看到这些消息,自然也就有更多人受害);

b.加关注,加uid为2201270010的用户关注——这应该就是大家提到的hellosamy了;

c.发私信,给好友发私信传播这些链接;

分析如下:

 

脚本 

XSS代码:

 

三、本次蠕虫事件中的代码下载 

 代码截图如下:

 

2.3其他实例应用

∙劫持访问

劫持访问就是在恶意脚本中插入诸如的代码,那么页面就会跳转到XX首页。

劫持访问在持久型和非持久型XSS中都比较常被利用。

持久型XSS中劫持访问的危害不用说大家都清楚,但有人会问非持久型XSS中劫持访问有什么作用呢?

很简单,试想下像,这样的域名下出现非持久型XSS,那么在发送钓鱼链接时就可以通过等域名进行跳转,一般人一看到之类的域名警惕性会下降,也就更容易上当了。

∙盗用cookie实现无密码登录

具体原理上文已经提到,这里做一个具体演示。

由于盗取的cookie需要传回给攻击者,因此往往需要一个服务器来接收盗取的cookie,这也就是xss平台的作用了。

网上的xss平台很多,但动手搭建一个也不难,建议有条件的自己搭建。

首先登录平台后台获取到js脚本地址为http:

//127.0.0.1/XSS/template/default.js,所以我们需要做的是把这段代码植入指定页面。

(这里以DVWA渗透测试平台为例)

我们发现网页对于message长度有限制。

审查元素看一下。

发现最大长度有限制,但这仅仅是前端的限制,直接双击修改成更大的数字即可。

再次尝试,没问题,我们已经将脚本植入完毕。

然后就是坐等别的用户访问这个界面。

这时,另一个用户gordonb登录并访问了留言界面,那么他的cookie就会被窃取。

我们可以从xss平台的后台获取到。

拿到cookie之后要登录他的帐号就好办了。

打开登录界面,调出火狐的firebug插件,调至cookie选项卡(注意,如果你的firebug插件没有cookie选项卡,请再安装firecookie插件即可看到)

然后依次点击cookies-createcookie,随后再弹出的界面中填入两个xss平台获取到的cookie,如图

这里注意要把我箭头所指的地方勾上,这是设置cookie有效期的地方,不然会在设置完下一秒cookie就失效。

完成之后再次刷新页面,发现已经不是之前的登录界面了,而是登录后的界面。

至此,一个从cookie窃取到利用的过程就已完成。

∙配合csrf攻击完成恶意请求

先简单解释以下csrf攻击。

Csrf攻击就是在未经你许可的情况下用你的名义发送恶意请求(比如修改密码,银行转账等),下面演示一个用xss配合csrf修改用户密码的例子。

首先对修改用户密码的界面进行抓包。

发现没有对原密码进行校验。

于是一股邪恶的力量油然而生:

要是在xss的恶意脚本中自动提交get请求修改密码的话。

说干就干,具体插入语句如下。

有人会问,这不是引用脚本吗?

其实不然,本质上这还是发起了一起get请求,因此可以直接使用。

与上例一样,插入到message中,再坐等上钩。

等下一个用户访问该界面时,密码就会被改为123456。

我们再看下访问该页面时的抓包情况,发现每次访问该页面都发送了更改密码的请求

效果看数据库(密码md5加密)

访问了该页面的用户密码都被更改了。

3跨站攻击的防范

3.1防范方法

跨站攻击相对于其他网络攻击而言显得更隐蔽,也更难防范。

有时问题并不出在用户身上,而是由于网站的问题。

即使安装了防火墙,也对跨站攻击无能为力,因此防范跨站攻击需要程序员方面和个人用户两方面入手,以下就可以防范大部分的跨站攻击。

程序员:

1.过滤特殊字符

对网站程序过滤特殊字符,这是防范跨站脚本攻击最为有效和彻底的方法。

在不影响网站程序正常运行的前提下,可在网站程序的表单输入过滤掉"javascript"、"

相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

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

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