XSS Cross-site scripting

Cross-site scripting简称跨站脚本,通常也称为XSS。
参考

一、XSS的危害
1、盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
2、控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
3、盗窃企业重要的具有商业价值的资料
4、非法转账
5、强制发送电子邮件
6、网站挂马
7、控制受害者机器向其它网站发起攻击

二、XSS的分类
XSS主要可分为三种,Reflected、Persistent、DOM等三种。通常危害较大,Web应用中存在很多潜在的可以运用XSS的方法。

三、维基百科的定义
Cross-site scripting (XSS) is a type of computer security vulnerability typically found in web applications. XSS enables attackers to inject client-side scripts into web pages viewed by other users. A cross-site scripting vulnerability may be used by attackers to bypass access controls such as the same-origin policy. Cross-site scripting carried out on websites accounted for roughly 84% of all security vulnerabilities documented by Symantec as of 2007. In 2017, XSS is still considered a major threat vector. XSS effects vary in range from petty nuisance to significant security risk, depending on the sensitivity of the data handled by the vulnerable site and the nature of any security mitigation implemented by the site’s owner.
跨站点脚本(XSS)是Web应用程序中常见的一种计算机安全漏洞。 XSS使攻击者能够将客户端脚本注入其他用户查看的网页中。 攻击者可能会使用跨站点脚本漏洞绕过访问控制,例如同源策略。 截至2007年,赛门铁克在网站上执行的跨站脚本占据了所有安全漏洞的84%左右。 2017年,XSS仍被视为主要威胁载体。XSS效果的范围从轻微的麻烦到重大的安全风险,取决于易受攻击的站点处理的数据的敏感性以及站点所有者实施的任何安全缓解的性质。

四、具体描述
(1)Non-persistent(reflected)反射式XSS攻击
含义:
Web客户端使用Server端脚本生成页面为用户提供数据时,如果未经验证的用户数据被包含在页面中而未经HTML实体编码,客户端代码便能够注入到动态页面中。
例子:
其攻击过程如下:
Alice经常浏览某个网站,此网站为Bob所拥有。Bob的站点运行Alice使用用户名/密码进行登录,并存储敏感信息(比如银行帐户信息)。Charly发现Bob的站点包含反射性的XSS漏洞。Charly编写一个利用漏洞的URL,并将其冒充为来自Bob的邮件发送给Alice。Alice在登录到Bob的站点后,浏览Charly提供的URL。嵌入到URL中的恶意脚本在Alice的浏览器中执行,就像它直接来自Bob的服务器一样。此脚本盗窃敏感信息(授权、信用卡、帐号信息等)然后在Alice完全不知情的情况下将这些信息发送到Charly的Web站点。
攻击者向受害者发送含有恶意脚本的url链接。受害者点开链接,带有恶意的脚本在受害者的浏览器中运行,造成受害者的损失(木马病毒,信息泄露,破坏电脑等)。

(2)Persistent (or stored) 存储式XSS攻击
含义:
该类型是应用最为广泛而且有可能影响到Web服务器自身安全的漏洞,黑客将攻击脚本上传到Web服务器上,使得所有访问该页面的用户都面临信息泄漏的可能,其中也包括了Web服务器的管理员。
例子:
其攻击过程如下:
Bob拥有一个Web站点,该站点允许用户发布信息/浏览已发布的信息。Charly注意到Bob的站点具有存储式的XSS漏洞。Charly发布一个热点信息,吸引其它用户纷纷阅读。Bob或者是任何的其他人如Alice浏览该信息,其会话cookies或者其它信息将被Charly盗走。
攻击利用服务器端的XSS漏洞,将恶意脚本传至服务器,访问该页面的用户都将存在信息泄露的危险。

(3)Self-XSS
含义:
Self-XSS是XSS漏洞的一种形式,它依赖于社交工程,以欺骗受害者在其浏览器中执行恶意JavaScript代码。 虽然技术上不是真正的XSS漏洞,因为它依赖于社交工程用户执行代码而不是受影响网站中允许攻击者这样做的缺陷,但它仍然会带来与常规XSS漏洞相同的风险。
例子:
Alice给Bob发送一个恶意构造了Web的URL。Bob点击并查看了这个URL。恶意页面中的JavaScript打开一个具有漏洞的HTML页面并将其安装在Bob电脑上。具有漏洞的HTML页面包含了在Bob电脑本地域执行的JavaScript。Alice的恶意脚本可以在Bob的电脑上执行Bob所持有的权限下的命令。

(4)Server-side versus DOM-based vulnerabilities服务器端 基于DOM的漏洞
含义:
在基于DOM的XSS攻击中,恶意数据不会触及Web服务器。 相反,它完全在客户端由JavaScript代码反映出来。
例子:
基于DOM的XSS漏洞的一个例子是2011年在许多JQuery插件中发现的漏洞。基于DOM的XSS攻击的预防策略包括与传统XSS预防策略非常相似的措施,但是在JavaScript代码中实现并包含在网页中(即输入验证和转义)。一些JavaScript框架具有针对此类攻击和其他类型攻击的内置对策——例如Angular.js。

(5)Mutated XSS (mXSS)
含义:
当攻击者在解析标记时,注入看似安全但被浏览器重写和修改的东西时,就会发生变异XSS。这使得在网站应用程序逻辑中检测或清理非常困难。一个例子是重新平衡未闭合的引号,甚至将参数的引号添加到CSS font-family的参数上。

猜你喜欢

转载自blog.csdn.net/lay_loge/article/details/88799375
今日推荐