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)-通关教程-完结](#DVWA -XSS(Reflected)-通关教程-完结)
  • XSS(Reflected)
      • [Low 级别反射型 XSS 攻击实战](#Low 级别反射型 XSS 攻击实战)
      • [Medium 级别反射型 XSS 攻击实战](#Medium 级别反射型 XSS 攻击实战)
      • [High 级别反射型 XSS 攻击实战](#High 级别反射型 XSS 攻击实战)
      • [Impossible 级别反射型 XSS 攻击](#Impossible 级别反射型 XSS 攻击)

Low 级别反射型 XSS 攻击实战

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


  1. 尝试提交弹窗脚本 ,输出用户 cookie,可以直接成功,说明 Low 级别未做任何防护措施

Medium 级别反射型 XSS 攻击实战

  1. 安全级别设置为 Medium,再次尝试直接提交输出 cookie 脚本,发现把脚 本内容直接显示出来了,说明对敏感的 JS 脚本做了过滤或转义
  1. 查看页面源码,发现如下代码 $name = str_replace( '<script>','',$_GET [ 'name' ] ),使用 str_replace函数把提交内容中的<script>替换为了空值
  1. 考虑到 PHP 严格区分大小写字母,该替换函数只匹配的小写的 script, 并没有匹配大写字母,尝试把script全部换成大写,提交 ,发现可以成功弹窗。


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

    <scr


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 攻击就可以彻底杜绝。

相关推荐
kyriewen7 分钟前
CSS Container Queries:彻底告别 @media 写到手软,附 5 个真实布局案例
前端·css·面试
站斧小威1 小时前
TikTok跨境电商浏览器怎么使用:多账号防关联,IP独立隔离
安全
小小小小宇2 小时前
OpenMemory MCP
前端
和平宇宙2 小时前
AI笔记005. hermes-DeepSeek V4 Pro, 128K上下文引发的探索
前端·人工智能·笔记
IT_陈寒2 小时前
Redis持久化这个坑,我爬了一整天才出来
前端·人工智能·后端
naildingding3 小时前
3-ts接口 Interface
前端·typescript
小小前端仔LC3 小时前
Node.js + LangChain + React:搭建个人知识库(六)- “吃什么”项目实战:从700+菜谱入库到Taro H5端JSON渲染
前端·后端
晓13133 小时前
【Cocos Creator 3.x】篇——第二章 入门
前端·javascript·游戏引擎
程序员黑豆3 小时前
AI全栈开发之Java:怎么配置Java环境变量
前端·后端·ai编程
galaxylove4 小时前
Gartner发布创新洞察:AI SOC智能体加速通信运营商安全运营转型
大数据·人工智能·安全