XSS跨站脚本攻击(一)----XSS攻击的三种类型

来源:转载

一、简介

什么是XSS?


百度百科的解释:XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。



它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意脚本,实现对用户游览器的控制,获取用户的一些信息。

二、分类


xss攻击可以分成两种类型:
1.非持久型攻击
2.持久型攻击

非持久型xss攻击:顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。

持久型xss攻击:持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。


也可以分成三类:


反射型:经过后端,不经过数据库
存储型:经过后端,经过数据库
DOM:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。

三、原理


1.反射型


新建一个xss.php文件并加入以下代码:



//XSS反射演示




<?php
$xss = @$_GET['xss'];
if($xss!==null){
echo $xss;
}

这段代码中首先包含一个表单,用于向页面自己发送 GET 请求,带一个名为xss的参数。 然后 PHP 会读取该参数,如果不为空,则直接打印出来,这里不存在任何过滤。也就是说,如果xss中存在 HTML 结构性的内容,打印之后会直接解释为 HTML 元素。

部署好这个文件,访问http://localhost/xss.php,直接输入一个js代码,比如,




之后点击test:




我们输入的HTML代码被执行了。用Firebug查看,我们输出的内容直接插入到了页面中,解释为



DOM-XSS 的数据流向是:URL-->浏览器

总结: 在易用上,存储型XSS > DOM - XSS > 反射型 XSS。


注:反射型xss和dom-xss都需要在url加入js代码才能够触发。


四、利用

通过 XSS 来获得用户 Cookie 或其他有用信息,利用平台负责接收并保存这些信息。XSS利用平台有很多种如XSS Shell, BeEF, Anehta, CAL9000。这里使用xsser.me、搭建过程可参考这:http://blog.csdn.net/u011781521/article/details/53895363

进入搭建好的xsser.me平台首页输入用户名与密码进行登录


成功之后会显示主界面,左边是模块列表,右边是项目列表:



我们点击左边“我的项目”旁边的“创建”按钮:




名称和描述可以随便取,不影响使用。输入时候点击“下一步”按钮。之后会出现“配置代码”界面:




点击下一步、就会看到这个项目的一些信息




点击完成。然后我们会在首页看到我们的新项目,点击这个项目:



之后点击项目,进入一个页面再点击右上方的查看代码



就可以看到使用方法:





下面就演示下怎么利用


把注入到反射型 XSS 的演示页面中。




上面的src="xxxx"是我另外创建的一个项目的地址,把你创建好的那个项目,提供的那个地址放进去,就可以了,虽然这个页面没反应,但是xsser.me那个项目就收到消息了。




分享给朋友:
您可能感兴趣的文章:
随机阅读: