0


DVWA 之 XSS(Reflected)反射型XSS

反射型XSS攻击

    又称为非持久性跨站点脚本攻击,它是最常见的类型的XSS。漏洞产生的原因是攻击者注入的数据反映在响应中。一个典型的非持久性XSS包含一个带XSS攻击向量的链接(即每次攻击需要用户的点击)** ****恶意代码并没有保存在目标网站,由浏览器解析脚本。**

1、级别:Low

源码:


<?php

header ("X-XSS-Protection: 0");

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

?>

代码采用get方式传入了name参数,没有做任何的过滤与检查,存在明显的XSS漏洞。

输入一个简单的语句测试一下:

<script>alert(1)</script>

有弹窗,即测试成功,按F12查看一下网页代码

可以看到我们在输出“Hello”之后成功注入了代码,原本这个地方应该是输入数据的,但是却变成运行代码了 ,从而达到黑客想要的目的,甚至是获取信息。

尝试一下直接获取cookie

<script>alert(document.cookie)</script>

2、级别:Medium


<?php

header ("X-XSS-Protection: 0");

// 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>";
}

?>

这里对输入进行了过滤,使用str_replace函数将输入中的<script>替换为空,有多种方法可以进行绕过。

双写绕过

<sc<script>ript>alert(123)</script>

** **

** 大小写绕过**

<Script>alert(456)</script>

**利用其他标签进行绕过 **

(1)img(图片插入法)

<img src=1 οnerrοr=alert('xss')>

(2) iframe

<iframe οnlοad=alert(123456)>

……

3、级别:High


<?php

header ("X-XSS-Protection: 0");

// 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>";
}

?>

preg_replace() 函数用于正则表达式的搜索和替换,这里凡是带script的都会被过滤,/i的意思是大小写通用,所以上述双写和大小写绕过都不行了,但利用其他的标签进行绕过依然可以成功。

4、级别:Impossible


<?php

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Check Anti-CSRF token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );

    // Get input
    $name = htmlspecialchars( $_GET[ 'name' ] );

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

// Generate Anti-CSRF token
generateSessionToken();

?>

添加了 anti-token 防御机制,和htmlseecialchars函数来防御

htmlspecialchars()函数
htmlspecialchars函数的功能:
把预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号)成为 &
" (双引号)成为 "
' (单引号)成为 '
< (小于)成为 <

(大于)成为 >

完美的对我们输入的内容进行过滤,避免了XSS攻击。

标签: xss 安全 web安全

本文转载自: https://blog.csdn.net/m0_51683653/article/details/127198621
版权归原作者 RexHarrr 所有, 如有侵权,请联系我们删除。

“DVWA 之 XSS(Reflected)反射型XSS”的评论:

还没有评论