XSS跨站脚本攻击实验

Posted jpga

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XSS跨站脚本攻击实验相关的知识,希望对你有一定的参考价值。

XSS攻击的原理、方法、常用技巧, 相关防范措施


跨站脚本攻击(Cross Site Scripting,XSS) 漏洞在Web应用中很常见。攻击者可以通过XSS注入恶意代码(一般指为js程序)至受害者的浏览器,进而窃取受害者认证信息。

    XSS注入有很多实现方式,可将XSS攻击大致分为存储型XSS、反射型XSS和DOM型XSS.

1)存储型XSS

存储型XSS攻击流程如下:

(1) 黑客在目标服务器(正常服务器)上构造XSS恶意脚本,并将其保存在数据库中;

(2) 用户登录目标服务器,查看了存在恶意脚本的页面;

(3) 目标服务器将XSS代码连同正常页面内容一起返回给用户浏览器;

(4) 用户浏览器解析了网页中的XSS恶意代码,向恶意服务器发起请求;

(5) 攻击者从自己搭建的恶意服务器获取用户提交的信息。

2)反射型XSS

反射型XSS攻击流程如下:

(1) 恶意的攻击者发给受害者一个链接(链接中携带xss代码);

(2) 攻击者诱使受害者点开这个链接;

(3) XSS代码被提交到有XSS漏洞的Web应用程序上;

(4) WEB应用程序没有过滤提交上来的数据,或者过滤不严格;

(5) WEB应用程序输出用户提交上来的数据(包含XSS代码);

(6)  用户浏览器渲染返回的html页面,执行返回的javascript代码;

(7) 恶意的javascript代码在后台悄悄执行,获取用户信息。

3)DOM型XSS

  DOM可理解为一个访问html的接口,当用户能够通过交互修改浏览器页面中的DOM并显示在浏览器上时,就有可能产生DOM型XSS注入漏洞。

  从效果上来说DOM型XSS类似于反射型XSS,但并不等同于反射型XSS。DOM型 XSS代码并不需要服务器参与,发出XSS攻击靠的是浏览器的DOM解析。而反射型XSS出现的前提是,应用程序从HTTP请求中获取一些输入并将该输入以不安全的方式嵌入到即时响应中。当应用程序存储输入,并将其以不安全的方式嵌入服务器,该嵌入内容就会出现在以后的响应中,出现存储型的XSS。

4)XSS危害

XSS跨站脚本攻击造成的危害主要可以分为如下6个方面:

(1)钓鱼欺骗,例如将目标网站重定向到钓鱼网站窃取用户账号密码;

(2)身份盗用,如窃取用户cookie,获得用户登录状态,查看并利用用户隐私信息;

(3)网页挂马,在网页中插入iframe语句上传木马,用户访问页面时会将木马下载到本地并执行;  

(4)垃圾信息发送;

(5)劫持用户Web行为,监视用户浏览历史,收发数据等

(6)XSS蠕虫,自传播感染用户群。

5)XSS防范

针对XSS注入,目前常用的防范方法主要可以分为下面5类技术:

(1)      服务器端过滤

 服务器端转义输入的左右尖括号,对HTML标签进行编码,这是主流的防御XSS的方法,可有效防御一般的XSS攻击。但缺点是无法防御部分DOM XSS攻击,以及Flash XSS攻击。

(2)      前端过滤

 对innerHTML的内容进行检查,对eval中用户输入的参数进行检查,对于使用的js库(例如jquery)以及Flash进行检查,以免使用了存在XSS漏洞的js库和swf文件。缺点是此方法只针对DomXSS有效。

(3)      HttpOnly

 在服务器端做配置,响应头里对cookie中的session进行httponly标记,被标记的session无法被js读出,因此可以有效防御针对偷取cookie的XSS攻击。缺点是只能防御针对cookie的XSS攻击。

(4)      Content Security Policy (CSP)

CSP策略规范了网页中某个标签所能加载的第三方域,从协议层把一些存在安全隐患的用法默认给干掉,把同源同域更发挥到了极致,结合禁止内联脚本的机制,可以有效防御大部分XSS攻击。缺点是需要在服务器端进行配置,而且一旦配置不当,正常业务也会受到影响;配置不严格又会导致绕过;对于大型的、复杂的网站业务,维护成本较高。

(5)      XSS防火墙技术

这种技术目前正处于概念阶段,并没有大范围投入使用,其思路是用js代码来对当前网页进行防护,防止发生XSS行为,而且设计理念也是各有不同。

以上是关于XSS跨站脚本攻击实验的主要内容,如果未能解决你的问题,请参考以下文章

简单XSS跨站脚本攻击实验

跨站脚本

软件安全实验——pre11(XSS跨站脚本攻击预习)

独家分享:跨站脚本攻击XSS详解

独家分享:跨站脚本攻击XSS详解

独家分享:跨站脚本攻击XSS详解