DVWA-Open HTTP Redirect开放重定向漏洞

时间:2025-09-06 12:45:01来源:互联网

下面小编就为大家分享一篇DVWA-Open HTTP Redirect开放重定向漏洞,具有很好的参考价值,希望对大家有所帮助。

最近在看web安全,刷刷靶场,简单记录。

Low

  先随便输入后抓包,可以看到一个http302重定向,一个200。

image

   low.php重定向了,查看源码如下。

<?php

if (array_key_exists ("redirect", $_GET) && $_GET['redirect'] != "") {
    header ("location: " . $_GET['redirect']);
    exit;
}
?>

  可以看到只是判断get请求参数中是否有redirect参数,因此只要传参即可。

  仿照第一个请求的地址,输入如下

http://dvwa/vulnerabilities/open_redirect/source/low.php?redirect=https://cnblo*g*s*.com

  即可实现跳转

Medium

  可以直接查看源码medium.php

<?php

if (array_key_exists ("redirect", $_GET) && $_GET['redirect'] != "") {
    if (preg_match ("/http://|https:///i", $_GET['redirect'])) {
        http_response_code (500);
        ?>
        <p>Absolute URLs not allowed.</p>
        <?php
        exit;
    } else {
        header ("location: " . $_GET['redirect']);
        exit;
    }
}

?>

  可以看到只是做了一些校验,判断redirect参数中是否携带了http:// 或https://

  那么这样绕过也较为简单,可以直接使用双斜杠//即可,如下,即使没加http https,也会自动解析,使用当前的协议跳转

http://dvwa/vulnerabilities/open_redirect/source/medium.php?redirect=//cnblogs.com

 

High

<?php

if (array_key_exists ("redirect", $_GET) && $_GET['redirect'] != "") {
    if (strpos($_GET['redirect'], "info.php") !== false) {
        header ("location: " . $_GET['redirect']);
        exit;
    } else {
        http_response_code (500);
        ?>
        <p>You can only redirect to the info page.</p>
        <?php
        exit;
    }
}

?>

  可以看到high的防御手段是检查get请求的redirect参数中是否存在“info.php”,因此可以直接构造一个参数?page=info.php来绕过,最终跳转到evil.com中。具体访问如下。

http://dvwa/vulnerabilities/open_redirect/source/high.php?redirect=//cnblogs.com/?page=info.php

 

小结

这一部分并不是很难,但是第一次做的时候就没什么头绪,只能通过研究源码进行绕过,很多别的题目也是如此。要是真在实战中,该怎么整呢?

本站部分内容转载自互联网,如果有网站内容侵犯了您的权益,可直接联系我们删除,感谢支持!