DVWA -XSS(Reflected)-通关教程-完结

DVWA -XSS(Reflected)-通关教程-完结

XSS(Reflected)

​ XSS 攻击全称跨站脚本攻击。是指用户在 Web 页面中提交恶意脚本,从而使浏览包含恶意脚本的页面的用户在不知情的情况下执行该脚本,导致被攻击的行为。

​ 与 SQL 注入类似,XSS 也是利用提交恶意信息来实现攻击效果的攻击行为。但是 XSS 一般提交的是 Javascript 脚本,运行在 Web 前端,也就是用户的浏览器;而 SQL 注入提交的SQL 指令是在后台数据库服务器执行。所以两者攻击的对象是不一样的。

​ XSS 按照攻击的手法,一般可以分为反射型 XSS(Reflected)、存储型 XSS(Strored)、DOM 型 XSS(DOM)。

​ 反射型 XSS 是指恶意的攻击脚本包含在 URL 中,只有当用户访问了包含恶意脚本的 URL,才会被害。反射型的攻击,攻击脚本不会写入网站的数据库,是一次性的攻击,所以黑客一般需要诱骗用户点击包含攻击脚本的 URL,才能攻击成功。

​ 存储型 XSS 则是把攻击脚本提交到网站后台数据库,只要有人访问了显示该数据内容的页面,就会被攻击。比较常见的场景就是黑客发表了一篇包含攻击脚本的帖子,那么只要有人访问该帖子内容的用户,就会自动在他们的浏览器上执行攻击脚本。相对于反射型,存储型的 XSS 成功率更高。

​ DOM 型 XSS 是指基于 DOM 文档对象模型的 XSS 攻击。编写网页时,经常会用到各种 DOM 对象,如document.referer、document.write 等等。DOM 型XSS 攻击的输出点就位于 DOM 对象上。严格来说,DOM 型 XSS 即有可能是反射型,也有可能是存储型

文章目录

  • DVWA -XSS(Reflected)-通关教程-完结
  • XSS(Reflected)
      • Low 级别反射型 XSS 攻击实战
      • Medium 级别反射型 XSS 攻击实战
      • High 级别反射型 XSS 攻击实战
      • Impossible 级别反射型 XSS 攻击

Low 级别反射型 XSS 攻击实战

  1. 安全级别设置为 Low,点击 XSS(Reflected) 按钮,进入反射型 XSS 攻击 模块,此页面的功能是输入内容会在前面加上Hello后显示。

在这里插入图片描述
在这里插入图片描述

  1. 尝试提交弹窗脚本 ,输出用户 cookie,可以直接成功,说明 Low 级别未做任何防护措施
<script>alert("kfc")</script>
<script>alert(document.cookie)</script>

在这里插入图片描述

Medium 级别反射型 XSS 攻击实战

  1. 安全级别设置为 Medium,再次尝试直接提交输出 cookie 脚本,发现把脚 本内容直接显示出来了,说明对敏感的 JS 脚本做了过滤或转义

在这里插入图片描述

  1. 查看页面源码,发现如下代码 $name = str_replace( '<script>','',$_GET [ 'name' ] ),使用 str_replace函数把提交内容中的<script>替换为了空值

在这里插入图片描述

  1. 考虑到 PHP 严格区分大小写字母,该替换函数只匹配的小写的 script, 并没有匹配大写字母,尝试把script全部换成大写,提交 ,发现可以成功弹窗。
<SCRIPT>alert(document.cookie)</SCRIPT>

在这里插入图片描述
在这里插入图片描述

  1. 该替换函数是对整个 ,也可以成功<script>字符做替换,而且只替换了一次,并没有 做递归检查,尝试在<script>中再嵌套一个<script>,提交也可以成功。
<scr<script>ipt>alert(document.cookie)</script>

在这里插入图片描述
在这里插入图片描述

High 级别反射型 XSS 攻击实战

  1. 尝试前面的攻击方法,发现在 High 级别下都无法成功,查看页面源码, 发现如下代码$name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ ''name' ] )preg_replace函数可以调用正则表达式。 我们发现该替换函数使用正则表达式进行了script的逐字检查,并通过/i来不区分大小写,所在造成之前的方法都不管用。
    在这里插入图片描述
    在这里插入图片描述

2.JS 脚本不仅仅可以<script>标签中使用,通过<img>标签中 onerror行为也可以调用 JS 脚本。或者<body>标签中onload行为也可以调用JS脚本。

<img src=1 onerror=alert('kfc')>
<img src=1 onerror=alert(document.cookie)>
<body onload=alert(document.cookie)>

在这里插入图片描述

Impossible 级别反射型 XSS 攻击

查看页面源码,发现使用了htmlspecialchars函数对提交的信息进行转义。该函数会将所有特殊字符转义为 HTML 实体。比如把 < 转义为 <,把 > 转义为 >。只要正确的使用该函数,XSS 攻击就可以彻底杜绝。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610715.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习和深度学习--李宏毅(笔记与个人理解)Day11-12

Day11 when gradient is small…… 怎么知道是局部小 还是鞍点&#xff1f; using Math 这里巧妙的说明了hessan矩阵可以决定一个二次函数的凹凸性 也就是 θ \theta θ 是min 还是max&#xff0c;最后那个有些有些 哈 是一个saddle&#xff1b; 然后这里只要看hessan矩阵是不…

Java创建对象内存分析-JVM

Java 创建对象的内存分析-JVM 复习的时候看到这篇&#xff0c;看完自己背着画了一下。 https://blog.csdn.net/qq_60264381/article/details/119276824

水利自动化控制系统平台介绍

水利自动化控制系统平台介绍 在当今社会&#xff0c;水资源的管理和保护日益成为全球关注的重要议题。随着科技的进步和信息化的发展&#xff0c;水利监测系统作为一种集成了现代信息技术、自动化控制技术以及环境监测技术的综合性平台&#xff0c;正在逐步改变传统的水利管理模…

Spring高手之路17——动态代理的艺术与实践

文章目录 1. 背景2. JDK动态代理2.1 定义和演示2.2 不同方法分别代理2.3 熔断限流和日志监控 3. CGLIB动态代理3.1 定义和演示3.2 不同方法分别代理&#xff08;对比JDK动态代理写法&#xff09;3.3 熔断限流和日志监控&#xff08;对比JDK动态代理写法&#xff09; 4. 动态代理…

Linux 计算机网络

目录 一、网络协议 1、 "协议" 是一种约定 2、协议分层 二、网络模型 1、OSI七层模型 2、TCP/IP五层(或四层)模型 三、网络传输基本流程 四、数据包封装和分用 五、网络中的地址管理 六、网络编程套接字 1、理解源IP地址和目的IP地址 2、端口号 理解 &q…

MySQL 全文检索

不是所有的数据表都支持全文检索 MySQL支持多种底层数据库引擎&#xff0c;但是并非所有的引擎支持全文检索 &#xff0c;目前最常用引擎是是MyISAM和InnoDB&#xff1b;前者支持全文检索&#xff0c;后者不支持。 booolean模式操作符 操作符含义必须有-必须不包含>包含对应…

移远通信:立足5G RedCap新质生产力,全力推动智能电网创新发展

随着全球能源结构的转型和电力需求的持续增长&#xff0c;智能电网产业迎来了新的发展机遇。而物联网、大数据等前沿技术的创新和应用&#xff0c;正在为电力行业的发展注入强劲的新质生产力。 4月9日&#xff0c;第四十八届中国电工仪器仪表产业发展技术研讨及展会在杭州拉开帷…

LeetCode 909 208

题目 909. 蛇梯棋 思路 完全不会&#xff01;呜呜呜&#xff0c;看了别人的题解。二维数组之字形遍历放在一维数组里面&#xff0c;然后借助队列对数组进行bfs。 代码 class Solution {int n;int[] nums;public int snakesAndLadders(int[][] board) {// 暴力遍历n board.le…

2024考研调剂须知

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项&#xff0c;系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…

MySQL高负载排查方法最佳实践(15/16)

高负载排查方法 CPU占用率过高问题排查 使用mpstat查看cpu使用情况。 # mpstat 是一款 CPU 性能指标实时展示工具 # 能展示每个 CPU 核的资源视情况&#xff0c;同时还能将资源使用情况进行汇总展示 # 如果CPU0 的 %idle 已经为 0 &#xff0c;说明此核已经非常繁忙# 打印所…

idea: 没有 new java class

如图&#xff1a; 解决&#xff1a; 右键点击--> Mark Directory as --> Sources Root ok

Python处理PDF:在PDF文档中插入页眉和页脚

在处理篇幅较长、结构复杂的PDF文档时&#xff0c;页眉和页脚的设计与插入就显得尤为重要。它们不仅扮演着美化文档、提升专业度的角色&#xff0c;更承担了导航指引、信息标注的重要功能。 页眉通常用于展示文档的标题或章节名称&#xff0c;有助于读者在翻阅过程中迅速定位所…