DVWA XSS(reflect)

前置知识:

        1.XSS:攻击者向网站注入恶意代码。发生在无验证和编码的用户输入的地方,通过输入来输出一些敏感信息。

LOW:

前置知识:

        1.array_key_exists() 函数:检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false

        2.document.cookie:设置或返回与当前文档有关的所有 cookie

writeup:

        1.目标是获取登入用户的cookie,查看源码,没有任何过滤,直接输出输入的内容

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>Hello ' . $_GET[ 'name' ] . '</pre>';
}

?> 

            2.尝试输入"<script>alert(document.cookie);</script>",获取成功    

Medium:

writeup:

        1.查看源码,代码将"<script>"替换成了"" 

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = str_replace( '<script>', '', $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}

?> 

        2.尝试双写绕过,构造"<scr<script>ipt>alert(document.cookie)</script>",成功获取cookie

        3.当然也可以大小写绕过

 

High

前置知识:

        1.preg_replace函数

        2.正则表达式:正则表达式30分钟入门教程 (deerchao.cn)PHP正则表达式,看这一篇就够了 (biancheng.net)
 

        3.只是过滤了script标签,但是有一些javascript事件后仍然能执行javascript代码 

        4.onerror 事件在加载外部文件(文档或图像)发生错误时触发。 

writeup:

        1.查看源码,代码将"<script"的任何字段进行了替换。

<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>Hello ${name}</pre>";
}

?> 

         2.构造<img src=aaa οnerrοr=alert(document.cookie);>,获取成功 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

QMDD

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

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

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

打赏作者

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

抵扣说明:

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

余额充值