xss攻击初理解

一、xss攻击概述

1、xss攻击是什么?

xss攻击通过利用网页开发时留下的漏洞,恶意攻击者往Web页面里插入恶意 Script代码,当用户浏览时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

2、xss攻击简介

XSS攻击(中文名:跨站脚本攻击): 通过利用网页开发时留下的漏洞,在网页中注入恶意指令代码,使用户加载并执行攻击者恶意制造的网页程序。恶意网页程序通常是JavaScript,也可以是Java、 VBScript、ActiveX、 Flash甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
XSS,是最普遍的Web应用安全漏洞。在Web安全威胁前10位中,XSS排名第2,仅次于代码注入(Injection)。XSS能使攻击者嵌入恶意脚本代码到正常用户访问的页面中,当正常用户访问该页面时,可能导致嵌入的恶意脚本代码被执行,从而达到恶意攻击用户的目的。
攻击者可以使用户在浏览器中执行其预定义的恶意脚本,造成的危害如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。

二、xss攻击的原理

HTML是一种超文本标记语言,通过把一些字符特殊对待来区别文本和标记,例如,“<”被看作是HTML标签的开始,< title >和< /title >之间的字符是页面的标题等等。当动态页面插入的内容含有特殊字符(如<)时,用户浏览器会误认为是插入了HTML标签,当这些HTML标签引入JavaScript脚本时,脚本程序就将在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,将产生XSS漏洞。

三、xss的攻击

1、xss的攻击类型

从攻击代码的工作方式分析可分为三个类型:
(1)持久型跨站(存储型XSS): 最直接的危害类型,跨站代码存储在服务器中(数据库)。存储型XSS和反射型XSS的差别在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。
(2)非持久型跨站(反射型XSS): 反射型跨站脚本漏洞,是最普遍的类型。发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。即用户访问服务器 - 跨站链接 - 返回跨站代码。
(3)DOM跨站(DOM XSS): DOM(document object model 文档对象模型),客户端脚本处理逻辑错误导致的安全问题。DOM XSS和反射型XSS、存储型XSS的差别在于DOM XSS的代码不需要服务器参与,触发XSS靠浏览器端的DOM解析,是客户端的事情。
基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,从而使攻击脚本被执行。在整个攻击过程中,服务器响应的页面不发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。

2、xss的攻击方式

1、盗用cookie,获取敏感信息。
2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
3、利用 iframe、frame、XMLHttpRequest 或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作。
4、利用可被攻击的域受其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作。
5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。

四、xss的防御

1、xss的防御方法

1、基于特征的防御:
XSS漏洞和SQL注入漏洞一样,都是利用Web页面的编写不完善。
2、基于代码修改的防御:
Web页面开发者在编写程序时往往会出现一些失误和漏洞,XSS攻击利用了这些失误和漏洞。
3、客户端分层防御策略:
客户端跨站脚本攻击的分层防御策略是基于独立分配线程和分层防御策略的安全模型。

2、防御XSS攻击的有效方式

防御XSS攻击的有效方式是对输入进行过滤,即:
(1)部署WAF Web 应用层防火墙;
(2)过滤所有HTTML JS CSS标签;
(3)过滤异常字符编码。

五、xss的危害

(1)挂马
(2)盗取用户Cookie
(3)DOS(拒绝服务)客户端浏览器
(4)钓鱼攻击
(5)删除目标文章、恶意篡改数据
(6)劫持用户Web行为,进一步渗透内网
(7)爆发Web2.0蠕虫
(8)蠕虫式的DDoS攻击
(9)蠕虫式挂马攻击、刷广告、刷浏量、破坏网上数据等

猜你喜欢

转载自blog.csdn.net/qq_45970607/article/details/109036372