bWAPP A7:Missing Functional Level Access Control 应用层访问控制缺失。

本文深入探讨了目录遍历漏洞的原理与防范措施,通过PHP代码示例展示了不同安全级别下目录遍历的攻击方式及防御策略。从低级到高级,详细分析了如何利用路径构造访问受限资源,并介绍了realpath函数在防止目录遍历中的作用。

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

Directory Traversal - Directories在这里插入图片描述

function show_file($file)
{

    // Checks whether a file or directory exists
    // if(file_exists($file))
    if(is_file($file))
    {

        $fp = fopen($file, "r") or die("Couldn't open $file.");

        while(!feof($fp))
        {

            $line = fgets($fp,1024);
            echo($line);
            echo "<br />";

        }

    }

    else
    {

        echo "This file doesn't exist!";

    }

}

low

            case "0" :

                show_file($file);

                // Debugging
                // echo "<br />" . $_GET['page'];

                break;

未对输入的目录进行限制,可以访问任意目录。

http://localhost/bwapp/directory_traversal_2.php?directory=documents/../../../../

medium

       strpos($data, "../") !== false ||
       strpos($data, "..\\") !== false ||
       strpos($data, "/..") !== false ||
       strpos($data, "\..") !== false)

同目录遍历medium,只限制了目录遍历,仍可使用文件名访问当前目录任意文件。

http://localhost/bwapp/directory_traversal_2.php?directory=eval

high

    $real_base_path = realpath($base_path);

    // echo "base path: " . $base_path . " real base path: " . $real_base_path . "<br />";

    $real_user_path = realpath($user_path);

使用real user path进行比较。
这里需要比较我们要访问的目录是不是在我们的目录下。从逻辑上解决了目录遍历的问题。

Directory Traversal - Files

http://localhost/bwapp/directory_traversal_1.php?page=666

还可以结合目录遍历访问上层目录文件

http://localhost/bwapp/directory_traversal_1.php?page=../../manual.chm

Host Header Attack (Cache Poisoning)low
还可以结合目录遍历访问上层目录文件

http://localhost/bwapp/directory_traversal_1.php?page=../../manual.chm

在这里插入图片描述medium

同目录遍历medium,只限制了目录遍历,仍可使用文件名访问当前目录任意文件。
high

同目录遍历high,使用real user path进行比较。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值