DVWA-XSS-DOM 全级别教程

本文深入探讨XSS-DOM攻击的不同等级,包括Low、Medium、High及Impossible等级的构造与防御策略。从源码分析入手,逐步解析如何利用DOM环境进行攻击语句构造,涉及document、window对象特性及常见DOM操作函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XSS-DOM

Low等级

查看源码
无任何保护措施,直接尝试注入。
在这里插入图片描述

查看页面源码
在这里插入图片描述

1.document和windows对象:
1)document表示的是一个文档对象,window表示的是一个窗口对象,一个窗口下可以有多个文档对象。所以一个窗口下只有一个window.location.href,但是可能有多个document.URL、document.location.href
2)window对象:它是一个顶层对象,而不是另一个对象的属性即浏览器的窗口。
3)document对象:该对象是window和frames对象的一个属性,是显示于窗口或框架内的一个文档。
4)document 只是属于window 的一个子对像。
5)window.location 包含 href 属性,直接取值赋值时相当于 window.location.href
6)window.location.href 当前页面完整 URL
7)document.location 包含 href 属性,直接取值赋值时相当于 document.location.href
8)document.location.href 当前页面完整 URL
9)document.href 没有这个属性
10)document.URL 取值时等价于 window.location.href 或 document.location.href。在某些浏览器中通过对 document.URL 赋值来实现页面跳转,但某些浏览器中不行。
2.indexOf()可返回某个指定的字符串值在字符串中首次出现的位置。对大小写敏感。如果要检索的字符串值没有出现,则该方法返回-1
3.substring()用于提取字符串中介于两个指定下标之间的字符。
4.选择下拉列表内容,其值会赋给default再添加到url的末尾,再将其传给option标签的value结点,由于没有任何过滤,我们输入xss语句即可触发,例如等

构造攻击语句


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

Medium等级

查看源码

在这里插入图片描述

1.array_key_exists() 函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
2.stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写),stripos(string,find,start)
3.header() 函数向客户端发送原始的 HTTP 报头,header(string,replace,http_response_code)

使用img标签试试

无弹窗
在这里插入图片描述在这里插入图片描述

查看网页源代码,发现我们的语句被插入到了value值中,但是并没有插入到option标签的值中,所以img标签并没有发起任何作用。先闭合前面的标签,构造语句闭合option标签

尝试直接闭合标签

无弹窗

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

因为闭合了option标签,所以img标签并没有插入。于是继续构造语句去闭合select标签,这下img标签就是独立的一条语句了

尝试闭合option标签试试

在这里插入图片描述

查看源代码,可以看到语句已经插入到页面中了
在这里插入图片描述

High等级

查看源码
在这里插入图片描述

传入的参数如果不是French、English、German、Spanlish这四种字符串的话,就会直接跳到?default=English。白名单只允许传的default值为French English German Spanish其中一个。

构造攻击语句

English#
English#

在这里插入图片描述

Impossible等级

查看源码
不需要做任何事,在客户端处理
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Web Security Loop

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值