美文网首页
Apache解析漏洞的构造与加固

Apache解析漏洞的构造与加固

作者: 啾哥 | 来源:发表于2018-10-09 20:45 被阅读0次

    一. Apache解析漏洞的构造

    1. 实验环境

        Windows 10+PHPstudy2014

    2. apache解析漏洞原理

        apache在解析文件时有一个原则:当碰到不认识的扩展名时,将会从后往前解析,直到遇到认识的扩展名为止如果都不认识将会暴露源码。在apache配置不当的时候就会造成apache解析漏洞。

    3. 漏洞构造

        打开配置文件httpd.config,添加如下代码。

    4. 漏洞详情

        首先上传文件  12.php.jpg

        文件里添加如下代码:

                <?php phpinfo();?>

    访问上传的网页,发现直接解析为php网页了。

    二.Apache解析漏洞加固

    打开apache配置文件httpd.conf再最后添加如下代码

    <FilesMatch ".(php.|php3.|php4.|php5.)">

    OrderDeny,Allow

    Deny from all

    </FilesMatch>

    然后我们再打开上传的文件网页

    解析失败了。

    附上index.php源码(同级目录下创建uploadfiles文件夹)


    <?php

    if (!empty($_FILES)):

    $ext = pathinfo($_FILES['file_upload']['name'], PATHINFO_EXTENSION);

    if (!in_array($ext, ['gif', 'png', 'jpg', 'jpeg'])) {

        die('Unsupported filetype uploaded.');

    }

    $new_name = __DIR__ . '/uploadfiles/' . $_FILES['file_upload']['name'];

    if(!move_uploaded_file($_FILES['file_upload']['tmp_name'], $new_name)){

        die('Error uploading file - check destination is writeable.');

    }

    die('File uploaded successfully: ' . $new_name);

    else:

    ?>

    <form method="post" enctype="multipart/form-data">

        File: <input type="file" name="file_upload">

        <input type="submit">

    </form>

    <?php

    endif;


    相关文章

      网友评论

          本文标题:Apache解析漏洞的构造与加固

          本文链接:https://www.haomeiwen.com/subject/qqgyaftx.html