当前位置: 首页 > news >正文

DVWA DOM Based Cross Site Scripting (DOM型 XSS)

DVWA DOM Based Cross Site Scripting (DOM型 XSS)

文章目录

  • DVWA DOM Based Cross Site Scripting (DOM型 XSS)
    • XSS跨站原理
      • DOM型
    • Low
    • Medium
    • High
    • Impossible

XSS跨站原理

当应用程序发送给浏览器的页面中包含用户提交的数据,但没有经过适当验证或转义时,就会导致跨站脚本漏洞。这个“跨”实际上属于浏览器的特性,而不是缺陷;

浏览器同源策略:只有发布Cookie的网站才能读取Cookie。

会造成Cookie窃取、劫持用户Web行为、结合CSRF进行针对性攻击等危害

DOM型

基于文档对象模型(Document Object Model)的一种漏洞;

DOM型与反射型类似,都需要攻击者诱使用户点击专门设计的URL;

Dom型 xss 是通过 url 传入参数去控制触发的;

Dom型返回页面源码中看不到输入的payload, 而是保存在浏览器的DOM中。

Low

1、分析网页源代码

<?php# No protections, anything goes?>
//没有任何防御措施

image-20240425141612735

2、修改default,在URL拼接Payload

<script>alert(/XSS/)</script>

image-20240425141658717

Medium

1、分析网页源代码

<?php// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {$default = $_GET['default'];# Do not allow script tagsif (stripos ($default, "<script") !== false) {header ("location: ?default=English");exit;}
}?>

增加对"<script"字符的过滤,查看前端代码

image-20240425143147799

2、构造闭合"option"和"select"标签,执行弹出"/xss/"的语句

</optin></select><img src = 1 onerror = alert(/xss/)>

image-20240616160139823

image-20240616161058852

High

1、分析网页源代码

<?php// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {# White list the allowable languagesswitch ($_GET['default']) {case "French":case "English":case "German":case "Spanish":# okbreak;default:header ("location: ?default=English");exit;}
}?>

2、在注入的 payload 中加入注释符 “#”,注释后边的内容不会发送到服务端,但是会被前端代码所执行。

(空格)#<script>alert(/xss/)</script>

image-20240616161314789

image-20240616161408461

Impossible

<?php# Don't need to do anything, protction handled on the client side?>
# 大多数情况下浏览器都会对 URL 中的内容进行编码,这会阻止任何注入的 JavaScript 被执行。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 第三方jar自带logback导致本地日志文件不生成
  • 前端(HTML + CSS)小兔鲜儿项目(仿)
  • CSS3下拉菜单实现
  • windows 版本Jenkins的Jenkinsfile中共享变量
  • 数据结构--第七天
  • 【AI绘图】基于Midjourney开发的AI绘画平台,对中文很友好!
  • Ubuntu文件操作(压缩与解压缩、用户组管理、权限)
  • 鸿蒙应用服务开发【华为支付服务】客户端
  • 剖析算法内部结构----------贪心算法
  • Arduino编译时出现extra tokens at end of #ifndef directive
  • 智能输电线路防外破监测装置:监控线行下施工保持安全距离
  • 一个简单的录音软件(利用QT录音,ffmpeg进行音频重采样,fdk-aac编码)
  • Qt 串口通信(C++)
  • 自动化报表实践小结
  • JVM 加载阶段 Class对象加载位置是在 堆中还是方法区?
  • [PHP内核探索]PHP中的哈希表
  • 2017届校招提前批面试回顾
  • Angular Elements 及其运作原理
  • Apache的80端口被占用以及访问时报错403
  • eclipse(luna)创建web工程
  • October CMS - 快速入门 9 Images And Galleries
  • oldjun 检测网站的经验
  • ReactNativeweexDeviceOne对比
  • Spring核心 Bean的高级装配
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 对超线程几个不同角度的解释
  • 看域名解析域名安全对SEO的影响
  • 聊聊directory traversal attack
  • 面试总结JavaScript篇
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 云大使推广中的常见热门问题
  • 追踪解析 FutureTask 源码
  • 湖北分布式智能数据采集方法有哪些?
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • 移动端高清、多屏适配方案
  • # Redis 入门到精通(一)数据类型(4)
  • # 数据结构
  • #QT(串口助手-界面)
  • $.ajax,axios,fetch三种ajax请求的区别
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (超详细)语音信号处理之特征提取
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (全部习题答案)研究生英语读写教程基础级教师用书PDF|| 研究生英语读写教程提高级教师用书PDF
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (四)鸿鹄云架构一服务注册中心
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (循环依赖问题)学习spring的第九天
  • (一)搭建springboot+vue前后端分离项目--前端vue搭建
  • (转)IOS中获取各种文件的目录路径的方法
  • **PHP二维数组遍历时同时赋值
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全