XSS (跨站脚本攻击) 分析与实战 您所在的位置:网站首页 xss攻击平台 XSS (跨站脚本攻击) 分析与实战

XSS (跨站脚本攻击) 分析与实战

2024-01-22 01:27| 来源: 网络整理| 查看: 265

文章目录 一、漏洞原理1、XSS简介:2、XSS原理解析:3、XSS的分类:3.1、反射型XSS3.2、存储型XSS3.3、DOM型XSS 二、靶场实战XSS实现盗取管理员Cookie并登录:

一、漏洞原理 1、XSS简介:

XSS全称:Cross Site Scripting,即跨站脚本攻击,为了不和“层叠样式表”(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。XSS是最常见的 Web 应用程序安全漏洞之一,这类漏洞能够使攻击者嵌入恶意脚本代码(一般是JS代码)到正常用户会访问到的页面中,当正常用户访问该页面时,恶意脚本代码将会在用户的浏览器上执行,从而达到恶意攻击用户的目的。

从上述内容可知,XSS属于客户端攻击,受害者最终是用户。但不要以为受害者是用户,就认为跟自己的网站、服务器安全没有关系,不要忘记网站管理人员也属于用户之一,这就意味着 XSS 可以攻击 “服务器端”。因为管理员要比普通用户的权限大得多,而攻击者就有可能靠管理员身份作为“跳板”实施攻击。

2、XSS原理解析:

XSS攻击在网页中嵌入的恶意脚本代码一般是使用 JavaScript 语言,JavaScript 可以获取用户的Cookie、改变网页内容、URL跳转,那么存在XSS漏洞的网站,就可以盗取用户Cookie、黑掉页面、导航到恶意网站,而攻击者需要做的仅仅是向Web页面中注入JavaScript 代码。

下面是一个简单的XSS漏洞实例,代码如下:

xss漏洞示例 把输入的字符串输出 请输入 echo ''; } ?>

在代码中,通过GET获取参数xss的值,然后通过echo输出一个input标签,并将xss的值放入input标签的value中。例如我们输入123,会在下面的输出框中输出123。 在这里插入图片描述 那么当我们输入">alert(1)时,输出到页面的 HTML代码变为

alert(1)">

发现,输入的双引号闭合了value属性的双引号,输入的>闭合了input的标签,导致我们后面输入的恶意代码成为另一个HTML标签。 在这里插入图片描述 当浏览器渲染时执行了alert(1),JS函数alert()导致浏览器弹窗。 在这里插入图片描述 在真实的攻击中,攻击者通过构造JS代码来实现一些 “特殊效果”。攻击者不仅仅弹出一个框,通常使用方式来加载外部脚本,而在x.txt中就存放着攻击者的恶意JS 代码,这段代码可能是用来盗取用户的Cookie,也可能是监控键盘记录等恶意行为。

注:JavaScript 加载外部的代码文件可以是任意扩展名(无扩展名也可以),如:,即使文件为图片扩展名x.jpg,但只要其文件中包含JS代码就会被执行。

3、XSS的分类:

XSS主要被分为三类,分别是:反射型、存储型 和 DOM型。这些有一些相同的特点,但是在如何确定和利用方面有一些区别,下面依次分析它们。

3.1、反射型XSS

反射型XSS 也被称为 非持久性XSS,是最容易出现的一种XSS漏洞。当用户访问一个带有 XSS 代码的 URL 请求时,服务器端接收数据后处理,然后把带有 XSS 代码的数据发送到浏览器,浏览器解析这段带有 XSS 代码的数据后,最终造成 XSS 漏洞。这个过程就像一次反射,故称为 “反射型XSS”。

下面用 DVWA 为大家进行演示,在输入框中构造如下JS代码:

alert('XSS')

这代码是进行弹窗操作,如果页面出现弹窗,说明我们插入的恶意代码被执行,结果如下: 在这里插入图片描述 可以看到页面出现弹窗,即我们输入的代码被程序成功解析,网站存在反射型XSS漏洞。

可能有人会说:这似乎并没有造成什么危害,不就是弹出一个框吗?那么请看下面这个例子。

假如网站 www.XXX.com/xss.php 存在XSS反射型漏洞,那么攻击者的步骤可能如下:

用户 A 是网站 www.XXX.com 的忠实用户,此时正泡在论坛看信息。

攻击者发现 www.XXX.com/xss.php 存在反射型XSS漏洞,然后精心构造JS代码,此段代码可以盗取用户Cookie发送到指定的站点 www.hacker.com。

攻击者将带有反射型XSS漏洞的URL通过站内私信发送给用户A,信的内容为一些诱惑信息,目的是为让用户A单击链接。

假设用户 A 点击了带有XSS漏洞的URL,那么将会把自己的Cookie 发送到网站www.XXX.com。

攻击者接收到用户 A 的会话Cookie,可以直接利用Cookie 以 A 的身份登录www.XXX.org,从而获取用户 A 的敏感信息。

以上步骤,通过使用反射型XSS漏洞可以以用户 A 的身份登录网站,这就是其危害,如果A的身份是管理员,那么危害将更加严重。

这是最简单的一种攻击,攻击者截获通过验证的用户会话令牌。劫持用户的会话后,攻击者就可以访问该用户经授权访问的所有数据和功能,其过程可以用一张图表示: 在这里插入图片描述

3.2、存储型XSS

存储型XSS又被称为持久性XSS,是最危险的一种跨站脚本。允许用户存储数据的 Web 应用都可能会出现存储型XSS漏洞,当攻击者提交一段XSS代码后,被服务器端接收并存储,然后不经过过滤或净化就显示给其他用户,这时候就会出现存储型XSS。

存储型与反射型、DOM型相比,具有更高的隐蔽性,危害性也更大。它们之间最大的区别在于:反射型XSS 与 DOM型XSS 执行都必须依靠用户手动去触发,而存储型XSS却不需要。

利用存储型XSS漏洞的攻击至少需要向 Web 应用提出两个请求。攻击者在第一个请求中构造JavaScript,应用程序接受并保存。在第二个请求中,一名受害者查看包含恶意代码的页面,这时JavaScript开始执行。

下面以 DVWA 的存储型XSS为例:

核心代码:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有