标签:编码 劫持 常用 而且 协议 自己 蠕虫 rip 规范
XSS注入有很多实现方式,可将XSS攻击大致分为存储型XSS、反射型XSS和DOM型XSS.
存储型XSS攻击流程如下:
(1) 黑客在目标服务器(正常服务器)上构造XSS恶意脚本,并将其保存在数据库中;
(2) 用户登录目标服务器,查看了存在恶意脚本的页面;
(3) 目标服务器将XSS代码连同正常页面内容一起返回给用户浏览器;
(4) 用户浏览器解析了网页中的XSS恶意代码,向恶意服务器发起请求;
(5) 攻击者从自己搭建的恶意服务器获取用户提交的信息。
反射型XSS攻击流程如下:
(1) 恶意的攻击者发给受害者一个链接(链接中携带xss代码);
(2) 攻击者诱使受害者点开这个链接;
(3) XSS代码被提交到有XSS漏洞的Web应用程序上;
(4) WEB应用程序没有过滤提交上来的数据,或者过滤不严格;
(5) WEB应用程序输出用户提交上来的数据(包含XSS代码);
(6) 用户浏览器渲染返回的HTML页面,执行返回的JavaScript代码;
(7) 恶意的javascript代码在后台悄悄执行,获取用户信息。
DOM可理解为一个访问html的接口,当用户能够通过交互修改浏览器页面中的DOM并显示在浏览器上时,就有可能产生DOM型XSS注入漏洞。
从效果上来说DOM型XSS类似于反射型XSS,但并不等同于反射型XSS。DOM型 XSS代码并不需要服务器参与,发出XSS攻击靠的是浏览器的DOM解析。而反射型XSS出现的前提是,应用程序从HTTP请求中获取一些输入并将该输入以不安全的方式嵌入到即时响应中。当应用程序存储输入,并将其以不安全的方式嵌入服务器,该嵌入内容就会出现在以后的响应中,出现存储型的XSS。
XSS跨站脚本攻击造成的危害主要可以分为如下6个方面:
(1)钓鱼欺骗,例如将目标网站重定向到钓鱼网站窃取用户账号密码;
(2)身份盗用,如窃取用户cookie,获得用户登录状态,查看并利用用户隐私信息;
(3)网页挂马,在网页中插入iframe语句上传木马,用户访问页面时会将木马下载到本地并执行;
(4)垃圾信息发送;
(5)劫持用户Web行为,监视用户浏览历史,收发数据等
(6)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行为,而且设计理念也是各有不同。
标签:编码 劫持 常用 而且 协议 自己 蠕虫 rip 规范
原文地址:https://www.cnblogs.com/jpga/p/12612329.html