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

XSS漏洞----基于Dom的xss

XSS漏洞----基于Dom的xss

本质(针对用户层面的攻击):在web页面插入恶意Script代码,用户浏览时,代码执行达到攻击的目的。

分类

反射型-----恶意脚本在参数中,是用户请求的一部分
基于Dom-----存在于客户端的js代码中,前端js读取包含恶意脚本的用户输入,通过不安全的Dom操作动态写入当前页面的DOM结构中。
不安全的DOM操作:js通过API动态的读取修改添加或删除DOM节点和内容。
存储型-----通过用户输入的渠道提交到服务器。

基于Dom的xss

dom clobbering—无法直接xss时,可以将html代码注入页面以操纵DOM并更改页面上js行为
单层覆盖
多层覆盖

请添加图片描述

以上是双层覆盖,通过form表中的属性标签,多层覆盖了document.body.appendChild

请添加图片描述

通过debug可以看出被更改

toString方法–将标签换成可控的字符类型以便解析

请添加图片描述

HTML Relationships构建层级关系-----使用两层的层级关系进行fuzz,只是用id

请添加图片描述

使用网页debug可见可以筛选出这些可以使用两层的层级关系进行fuzz的标签

请添加图片描述

DOMxss挑战题:

请添加图片描述

这里可以用两种解法:

解法1:

请添加图片描述

利用css样式中的style这个标签:

1、首先创建两个id的元素,覆盖window.attributes的属性,原本的Element.attributes被覆盖为HTMLInputElement

2、XSS触发机制,利用onmanimationstart动画事件处理函数配合无效动画@keytrames,当浏览器尝试解析动画时会触发第一个函数,执行alert(1)弹窗。

这道题首先要用dom clobbering中覆盖的这一性质,其次要对前端知识点熟悉,想到css样式这个点。

解法2:

请添加图片描述

用两个svg标签绕过:

1、用svgsvg这样两个标签时是没有正确闭合的,第一个svg是开启svg的命名空间,第二个svg是在命名空间内嵌套svg元素,浏览器会将嵌套的svg视为合法结构,并执行onload事件。

是开启svg的命名空间,第二个 svg 是在命名空间内嵌套svg元素,浏览器会将嵌套的svg视为合法结构,并执行onload事件。

2、大多数WAF检测是检测单个svg标签包含onload属性,所以在检测第一个svg时没有任何元素,视为安全属性,第二个svg视为新的标签,不视作和第一个相关联的标签。

http://www.dtcms.com/a/287399.html

相关文章:

  • 力扣24:两两交换链表中的节点
  • SQLALchemy
  • 单元测试学习+AI辅助单测
  • 计算机网络:(十一)多协议标记交换 MPLS
  • GaussDB union 的用法
  • Java NIO Selector高并发场景下CPU占用飙升问题排查与解决方案
  • NIO零拷贝
  • MySQL的union、union all导致排序失效
  • 低输入电源5.5V/2A同步降压转换器具有多种模式选择
  • roslaunch 文件的核心语法和使用技巧
  • (LeetCode 每日一题) 1233. 删除子文件夹 (排序)
  • TCP/UDP协议深度解析(四):TCP的粘包问题以及异常情况处理
  • 7.19 换根dp | vpp |滑窗
  • 医养照护与管理实训基地建设:创新模式与突破路径
  • 扭蛋机系统开发:打造多元化娱乐生态的新引擎
  • 响应式单位rpx及搭配使用UI产品工具
  • Ambiguity-Resolved Waveform Design for Cell-free OFDM-Based ISAC Systems
  • 【MySQL笔记】视图
  • 力扣 hot100 Day49
  • day25 力扣90.子集II 力扣46.全排列 力扣47.全排列 II
  • 二、环境搭建之CentOS安装Docker
  • GitHub:只支持 Git 作为唯一的版本库格式进行托管
  • 二分查找-69.x的平方根-力扣(LeetCode)
  • 安装单机版本Redis
  • 电商商品综合排序:从需求分析到实时计算的全方位指南
  • 初识Redis---Redis的特性介绍
  • GM-3568JHF vs 普通 RK3568 开发板 — 工业应用对比文案
  • 学习 Python 爬虫需要哪些基础知识?
  • 3516cv610 npu 开发典型功能点的介绍
  • Azure Bicep 是什么?