xss css,XSS CSS

Cross-Site Scripting: DOM

ABSTRACT

向 Web 浏览器发送非法数据会导致浏览器执行恶意代码。

EXPLANATION

Cross-Site Scripting (XSS) 漏洞在以下情况下发生:

1. 数据通过一个不可信赖的数据源进入 Web 应用程序。对于基于 DOM 的 XSS,将从 URL

参数或浏览器中的其他值读取数据,并使用客户端代码将其重新写入该页面。对于 Reflected XSS,不可信赖的源通常为 Web

请求,而对于 Persisted(也称为 Stored)XSS,该源通常为数据库或其他后端数据存储。

2. 在未检验包含数据的动态内容是否存在恶意代码的情况下,便将其传送给了 Web 用户。对于基于 DOM 的

XSS,任何时候当受害人的浏览器解析 HTML 页面时,恶意代码都将作为 DOM(文档对象模型)创建的一部分执行。

传 送到 Web 浏览器的恶意内容通常采用 JavaScript 代码片段的形式,但也可能会包含一些 HTML、Flash

或者其他任意一种可以被浏览器执行的代码。基于 XSS

的攻击手段花样百出,几乎是无穷无尽的,但通常它们都会包含传输给攻击者的私人数据(如 Cookie

或者其他会话信息)。在攻击者的控制下,指引受害者进入恶意的网络内容;或者利用易受攻击的站点,对用户的机器进行其他恶意操作。

例:下面的 JavaScript 代码片段可从 HTTP 请求中读取雇员 ID

eid,并将其显示给用户。

String queryString = Window.Location.getQueryString();

int pos = queryString.indexOf("eid=")+4;

HTML output = new HTML();

output.setHTML(queryString.sunstring(pos, queryString.length()));

如果 eid 只包含标准的字母或数字文本,这个例子中的代码就能正确运行。如果

eid 里有包含元字符或源代码中的值,那么 Web 浏览器就会像显示 HTTP

响应那样执行代码。

起 初,这个例子似乎是不会轻易遭受攻击的。毕竟,有谁会输入导致恶意代码的

URL,并且还在自己的电脑上运行呢?真正的危险在于攻击者会创建恶意的 URL,然后采用电子邮件或者社会工程的欺骗手段诱使受害者访问此

URL 的链接。当受害者单击这个链接时,他们不知不觉地通过易受攻击的网络应用程序,将恶意内容带到了自己的电脑中。这种对易受攻击的

Web 应用程序进行盗取的机制通常被称为反射式 XSS。

正如例子中所显示的,XSS 漏洞是由于 HTTP 响应中包含了未验证的数据代码而引起的。受害者遭受 XSS

攻击的途径有三种:

— 系统从 HTTP 请求中直接读取数据,并在 HTTP 响应中返回数据。当攻击者诱使用户为易受攻击的 Web

应用程序提供危险内容,而这些危险内容随后会反馈给用户并在 Web 浏览器中执行,就会发生反射式 XSS

盗取。发送恶意内容最常用的方法是,把恶意内容作为一个参数包含在公开发表的 URL

中,或者通过电子邮件直接发送给受害者。以这种手段构造的 URL 构成了多种“网络钓鱼”(phishing)

阴谋的核心,攻击者借此诱骗受害者访问指向易受攻击站点的

URL。站点将攻击者的内容反馈给受害者以后,便会执行这些内容,接下来会把用户计算机中的各种私密信息(比如包含会话信息的

cookie)传送给攻击者,或者执行其他恶意活动。

应用程序将危险数据存储在数据库或其他可信赖的数据存储器中。这些危险数据随后会被回写到应用程序中,并包含在动态内容中。Persistent

XSS

盗取发生在如下情况:攻击者将危险内容注入到数据存储器中,且该存储器之后会被读取并包含在动态内容中。从攻击者的角度看,注入恶意内容的最佳位置莫过于

一个面向许多用户,尤其是相关用户显示的区域。相关用户通常在应用程序中具备较高的特权,或相互之间交换敏感数据,这些数据对攻击者来说有利用价值。如果

某一个用户执行了恶意内容,攻击者就有可能以该用户的名义执行某些需要特权的操作,或者获得该用户个人所有的敏感数据的访问权限。

应用程序之外的数据源将危险数据储存在一个数据库或其他数据存储器中,随后这些危险数据被当作可信赖的数据回写到应用程序中,并储存在动态内容中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值