您现在的位置是:首页 > 正文

DVWA靶场存储型XSS漏洞实验

2024-02-01 06:49:56阅读 2

前言

来自菜鸟的一次简单分享,本次实验主要结合后台源代码讲解,梳理存储型XSS实验的思路,如果存在问题,请各位大佬多多指导。

一、XSS基础

1.什么是XSS?

       XSS(Cross-site scripting)被称为跨站脚本攻击,由于与层叠样式表的缩写一样,因此被缩写为XSS。

2.XSS漏洞原理

        XSS攻击发生在客户端,由于web应用程序对用户的输入过滤不严格导致攻击者可以利用网站漏洞把恶意的脚本代码(通常包括HTML代码和客户端JS脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码。

3.XSS漏洞成因

      形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输入到前端时被浏览器当作有效代码解析执行从而产生危害。

4.XSS漏洞危害

  • 网络钓鱼,盗取各类用户账号,如机器登录账号、用户网银账号。
  • 窃取cookie,从而获取用户隐私信息,或利用用户身份对网站执行操作
  • 劫持用户(浏览器)会话
  • 强制发送网站挂马
  • 控制受害者机器向其他网站发起进攻

5.存储型XSS漏洞原理

       存储型XSS又称持久型XSS,攻击脚本被永久地存放在目标服务器的数据库或文件中,具有很高的隐蔽性。 

       这种攻击多见于论坛、博客和留言板,攻击者在发帖的过程中,将恶意脚本连同正常信息一起注入帖子的内容中。随着帖子被服务器存储下来,恶意脚本也永久地被存放在服务器的后端数据库中。当其他用户浏览这个被注入了恶意脚本的帖子时,恶意脚本会在他们的浏览器中得到执行。

       存储型XSS攻击能够将恶意代码永久的嵌入到一个页面中,所有访问此页面的用户都会成为受害者。

6.存储型XSS与反射型XSS的区别

       个人理解反射型XSS是通过将payload经过编码插入到URL中,或者构造具有诱惑性的恶意网站通过社会工程学(如发送邮件、消息等方式),诱导正常用户点击达到攻击的目的,如果用户不点击则无法达到攻击的目的。

        存储型XSS与反射型XSS不同的是,存储型XSS是攻击者将恶意的payload通过留言板、博客系统发送至后台服务器存储起来,当其他用户访问这个页面时就会受到攻击,不需要用户手动点击payload便可完成攻击。

二、DVWA靶场实战

1.存储型XSS漏洞利用(LOW)

1.1.实验思路

  • 测试靶场接口是否过滤<script>标签
  • 构造payload判断渗透点
  • 构造payload获取cookie

1.2.实验步骤

(1)打开dvwa靶场,修改安全级别为low

 (2)选择实验关卡

(3) 测试接口是否过滤特殊字符/<script>标签

       在name、message两处提交框输入<script>alert(1)</script>,进行了两次弹窗,说明两个提交框都存在xss漏洞,并且没有对输入的内容进行任何的过滤。

        但是在name提交框输入时发现输入的内容字节数有所限制,F12键打开开发者模式修改:

(4)构造payload并获取cookie

<script>alert(document.cookie)</script>

2.存储型XSS漏洞利用(medium)

1.1.实验思路

  • 测试靶场接口是否过滤<script>标签
  • 分析源代码
  • 构造payload判断渗透点
  • 构造payload获取cookie

1.2.实验步骤

(1)打开dvwa靶场,修改安全级别为medium

 (2)选择实验关卡

(3) 测试接口是否过滤特殊字符或者<script>标签

       在name、message两处提交框输入<script>alert(1)</script>

         此时页面不再弹框,而是直接将输入的内容去掉标签直接输出,因此可能存在过滤。

(4)分析源代码

源码中str_replace() 函数的作用是替换字符串中的一些字符(区分大小写)。
分析源码可知会将<script>标签替换为空,因此我们可以利用双写或者大小写混写达到绕过的目的。

(5)构造payload并获取cookie(双写绕过)

<scr<script>ipt>alert(1)</scr<script>ipt>

        此时成功弹窗,那么也就可以利用弹窗获取cookie。

(6)构造payload获取cookie

<scr<script>ipt>alert(document.cookie)</scr<script>ipt>

至此双写绕过已完成,关于大小写绕过这里提供payload样例即可,有兴趣的网友可以自行尝试。大小写payload如下:

<sCript>alert(1)</scriPt>

3.存储型XSS漏洞利用(high)

3.1.实验思路

  • 测试靶场接口是否过滤<script>标签
  • 分析源代码
  • 构造payload判断渗透点
  • 构造payload获取cookie

3.2.实验步骤

(1)打开dvwa靶场,修改安全级别为medium

(2)选择实验关卡

(3) 测试接口是否过滤特殊字符或者<script>标签

       在name、message两处提交框输入<script>alert(1)</script>

         此时页面不再弹框,name提交框只“>”输出,message提交框去掉<script>标签直接输出alert(1)内容,因此可能存在过滤。

(4)分析源代码

       源码中preg_replace 函数会对$name的值执行一个正则表达式的搜索和替换会将<script>标签除>中的所有字符全部替换为空然后输出,此时双写、大小写混写已经不再适用,可采用其他标签方式进行绕过。

       分析源码发现后台会对变量message首先利用addslashes()函数在每个双引号前面加上反斜杠进行转义,然后再利用strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。因此在message提交框中无法进行xss注入,可以尝试在name提交框输入payload。

(5)构造payload并获取cookie(双写绕过)

        <input οnfοcus="alert('xss');">提交后输出一个提交框

        点击提交框开始弹窗

        成功弹窗说明我们此时可以利用此标签构造payload获取cookie。

(6)构造payload获取cookie

<input onfocus="alert(document.cookie);">

         成功获取cookie。


总结

以上就是我对DVWA靶场存储型xss实验的一个总结,欢迎各位大佬指正。

网站文章

  • 通过socket通讯控制ur机械臂

    通过socket通讯控制ur机械臂1.socket客户端(连接机械臂)2.控制机械臂运动(发送控制指令)3. 实时 以前一直使用ros跟机械臂打交道,但在使用moveit控制机械臂运动的时候会出现一些...

    2024-02-01 06:49:28
  • 阿里巴巴JarsLink整理

    阿里巴巴JarsLink整理

    一、框架整体类图结构JarsLink整体主要类图二、类功能简介(1)Module类贯彻整个框架,在各个功能中进行传输(2)ModuleLoader接口定义了模块加载的功能,即是将模块加载到新定义的Cl...

    2024-02-01 06:49:20
  • 分布式计算框架

    1、产生背景Web2.0时代,数据爆炸式、指数级增长,大数据分布式计算需求频繁通过单机内存扩展来增强计算能力,已经无法承载大规模数据量的计算分布式计算开发和维护的复杂与多变,对程序员要求太高Googl...

    2024-02-01 06:49:12
  • 第三十八章 立方体贴图和GLSL总结

    第三十八章 立方体贴图和GLSL总结

    2024-02-01 06:49:05
  • Linux 安装Apache 记录

    Linux 安装Apache 记录

    linux下Apache源码编译安装1.下载并安装APR  http://apr.apache.org/wget -c http://mirrors.hust.edu.cn/apache//apr/apr-1.6.2.tar.bz2执行解压命令 tar -xjvf 文件名 解压后切换到目录执行命令配置 :./configure --prefix=/usr/l

    2024-02-01 06:48:35
  • Eclipse RCP入门(创建一个日期选择器)

    直接上代码。 [code=&quot;java&quot;]package org.autumn.rcp.learn; import java.util.Calendar; import java.u...

    2024-02-01 06:47:56
  • C++描述 LeetCode 1004. 最大连续1的个数 III

    C++描述 LeetCode 1004. 最大连续1的个数 III   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中...

    2024-02-01 06:47:50
  • 【实战】阿里云https证书申请与部署

    【实战】阿里云https证书申请与部署

    文章目录阿里云https证书申请与部署1.证书申请2.证书部署 阿里云https证书申请与部署 1.证书申请 登录阿里云官网:https://www.aliyun.com/ 搜索ssl,点进第一个搜索结果 滑到底 选择免费证书,点击购买 再次点击立即购买 去支付 确认支付 支付成功,返回证书控制台 未签发栏下点击证书申请 填写申请需要的相关内容,点击下一步: 进行信息验证(上面...

    2024-02-01 06:47:43
  • 为什么要反弹shell

    我也不知道这个比喻恰不恰当:首先是一个城池,我想要控制这个城,就要控制这个城的城主,我手里有控制当前城主的把柄(shell)但是我要和城主建立起联系才可以控制他,城外有一座大墙(防火墙),会严格检查入...

    2024-02-01 06:47:12
  • 0202性能分析-索引-MySQL

    0202性能分析-索引-MySQL

    0202性能分析-索引-MySQL

    2024-02-01 06:47:06