DVWA——XSS(Dom low&medium)

本文详细解读了XSS攻击的过程、危害,介绍了不同类型的XSS漏洞(反射型、存储型、DOM型),并通过实例演示了如何利用JavaScript在DVWA靶场进行低级和中级DOM XSS攻击。此外,还涉及了JS基础语句的应用和防范措施。

此文章只用于学习,请勿用作其他违法犯罪行为!

以下部分文字内容以图片形式展示,因为JS代码打不上去。

目录

前言

XSS攻击流程

XSS的危害

XSS的漏洞类型

JS基本语句

XSS Dom Low

XSS Dom  Medium


前言:

XSS被称为跨站脚本攻击,全称Cross-site scripting,本来缩写为CSS,但是为避免与CSS(全称Cascading Style Sheets,层叠样式脚本)重名,于是更名为XSS。这个漏洞主要利用JS(Java Script)完成恶意的攻击行为,因为浏览器不会判断JS代码是否为恶意代码,当攻击者将代码注入到网页中,浏览器解析运行这段代码,就可以达到恶意攻击的目的。比如用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来此时恶意代码已被该浏览器解析执行,即达成恶意攻击的目的。一般我们把攻击者的恶意脚本称之为XSS Payload。

XSS属于针对客户端的攻击,最终的受害者都是用户,网站管理员也属于用户,攻击者会利用XSS(比如获取管理员的cookie)假冒网站管理员的身份,以达到对网站进行各种暗箱操作的目的。

XSS攻击流程:

找到有XSS漏洞的站点,放置伪装(吸引其他用户点击)的脚本

-->

用户点击查看,此时脚本已在用户浏览器上执行

-->

脚本将获取的信息发送到攻击者的电脑

-->

攻击者收集敏感数据(一般为cookie)信息

-->

使用搜集的cookie信息仿冒登录进行恶意操作

XSS的危害:

  • 盗取用户cookie
  • 修改网页内容
  • 网站挂马
  • 利用网站重定向
  • XSS蠕虫
  • 劫持用户会话

XSS的漏洞类型:

  • 反射型 :经过后端,不经过数据库。 XSS数据流向:浏览器-->后端-->浏览器

一般攻击者会在有XSS漏洞的网页中设置一个诱骗用户点击的地方,点击后就会开始执行XSS脚本。

  • 存储型 :经过后端,经过数据库。 XSS数据流向:浏览器 -> 后端 -> 数据库 -> 后端 -> 浏览器

攻击者通过XSS漏洞将恶意脚本放入当前数据库中,用户每次访问当前页面都会运行恶意脚本。

  • DOM型:不经过后端。 XSS数据流向:URL-->浏览器 

攻击者直接在当前站点利用浏览器不会判断JS是否为恶意代码这个性质直接将代码注入到网页中。

JS基本语句:

js语句传不上来,放个图片

我们用DVWA这个靶场来验证一下: 

XSS Dom Low

首先来到XSS(DOM)这个站点,选择难度为Low,然后出现以下界面:

观察一下弹出的内容,发现翻译成中文分别是:英语,法语,西班牙语,德语。

选择English,发现网页的url后多出来default=English,此时很懵。

然后选择看一下这个页面的View Source,发现了这个:大概意思是,这个客户端处理不需要任何保护。

盲猜一波上面出现的选项应该是选择使用哪种语言的意思,选择英语直接开始注入JS脚本。

 XSS Dom  Medium:

 此时我们可以选择看一下View Source:

array_key_exists("default",$_GET) :

array是定义一个数组的意思,key代表要检查的键,exists代表检查的键的来源。

&&:

代表相与,是PHP的逻辑运算符,若这个运算符的前后都为true ,则返回true。

!is_null($_GET[ 'default' ]):

!代表非,is_null是为空的意思 , $_GET['default']意思是从获取的字符中提取的default值,合起来就是获取的default为非空。

两个语句一起做相与运算之后就是若获取的字符种含default且default为非空就输出获取的default值。

stripos :

是一个函数,作用是查找字符串在另一字符串中第一次出现的位置(不区分大小写) 格式:stripos(被查找的字符串,被查找的字符,开始查找的位置(非必须)。

location:

代表页面跳转 格式:location:"跳转到的位置"。。

! == false:

意思是如果返回的结果不是false,就进行跳转。

 

 有弹窗说明这个有XSS漏洞且已经被浏览器执行。

注:本人对PHP,Java Script还不是非常了解,如果有错还请指出。另外强调此文章只用于学习,请勿用作其他违法犯罪行为!

<think>嗯,用户需要了解在Kali和Win10系统下使用DVWA靶场进行XSS DOM攻击的方法和教程。用户已经提供了三个相引用,说明用户对DVWA靶场、XSS DOM攻击的基本概念有一定了解,现在需要具体的操作指导。 用户可能正在学习Web安全渗透测试,可能是安全初学者或CTF选手。ta明确要求跨平台操作指导(Kali和Win10),说明实际环境中可能同时使用这两类系统。深层需求应该是想掌握不同环境下的标准化攻击流程,而不仅仅是理论。 从引用来看,键信息点包括:DVWA靶场部署方法(引用2)、DOMXSS的攻击特征(引用1和3),特别是引用3提到用#号绕过服务器直接操作DOM的技巧很有实操价值。 需要重点解决三个层面: 1. 环境搭建:区分Kali(Linux)和Win10的部署差异,尤其是Win10可能遇到的权限问题 2. 攻击原理:解释为什么DOMXSS可以不经过服务器,这与反射型/存储型的本质区别 3. 实操演示:必须包含输入示例和预期结果,像引用3的payload需要优化(原示例有HTML实体编码问题) 特别注意要强调法律边界,引用1已声明"严禁非法攻击",在教程中需强化警告。技术细节上,DOMXSS的#号技巧在DVWA的low别有效,但medium/high别需要其他绕过方法,用户没提难度别,所以从基础开始。 最后考虑加入攻击日志分析,因为用户引用中没提如何验证成功,实际需要查看浏览器开发者工具。 </think>以下是在Kali和Windows 10系统下使用DVWA靶场进行DOMXSS攻击的完整操作指南,包含环境搭建和攻击实战步骤: --- ### 一、环境搭建 #### ▶ Kali系统部署 ```bash # 1. 下载DVWA git clone https://github.com/digininja/DVWA.git cd DVWA # 2. 配置数据库 sudo mysql -u root > create database dvwa; > grant all on dvwa.* to 'dvwa'@'localhost' identified by 'p@ssw0rd'; > flush privileges; # 3. 修改配置文件 cp config/config.inc.php.dist config/config.inc.php nano config/config.inc.php # 修改数据库密码为 p@ssw0rd # 4. 启动服务 sudo systemctl start apache2 mysql ``` 访问 `http://localhost/DVWA/setup.php` 点击"Create/Reset Database" [^2] #### ▶ Windows 10系统部署 1. 安装XAMPP(含Apache+MySQL) 2. 下载DVWA压缩包解压到 `htdocs` 目录 3. 修改 `config/config.inc.php` 中的数据库密码: ```php $_DVWA[ 'db_password' ] = 'p@ssw0rd'; ``` 4. 访问 `http://localhost/DVWA/setup.php` 初始化数据库[^1] --- ### 二、DOMXSS攻击实战 #### ▶ 攻击路径 访问:`DVWAXSS (DOM) → Low Security Level` #### ▶ 攻击步骤 1. **观察URL参数** URL格式:`http://靶场地址/vulnerabilities/xss_d/?default=English` ```mermaid graph LR URL参数 --> default=值 --> 页面DOM直接输出 ``` 2. **构造恶意Payload** 在URL末尾追加(注意空格): ``` #<script>alert('XSS_by_zky50')</script> ``` 完整URL示例: ``` http://localhost/DVWA/vulnerabilities/xss_d/?default=English#<script>alert('XSS_by_zky50')</script> ``` 3. **攻击原理分析** - `#` 后的内容不会发送到服务器(DOM型特征)[^3] - 页面JavaScript直接读取 `location.hash` 并输出 - 前端源码漏洞点: ```javascript document.write("<option value='" + lang + "'>" + decodeURI(lang) + "</option>"); ``` - 若输入为 `#<script>...</script>` 会被解析为HTML标签 4. **中/高安全绕过技巧** ```python # Medium别绕过示例 #<img src=x onerror=alert(1)> # High别绕过(需闭合标签) #</option></select><svg onload=alert(document.domain)> ``` --- ### 三、防御建议 1. 前端过滤:对 `location.hash` 使用 `encodeURIComponent()` 2. 服务端校验:即使DOMXSS不依赖服务端,也应验证参数格式 3. 内容安全策略:设置CSP头 ```http Content-Security-Policy: script-src 'self' ``` > **法律声明**:本文仅供学习防御技术使用,未经授权对他人的系统实施攻击属于违法行为,使用者需自行承担法律责任[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值