Apache解析漏洞的构造与加固

一. Apache解析漏洞的构造

1. 实验环境

    Windows 10+PHPstudy2014

2. apache解析漏洞原理

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

3. 漏洞构造

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


Apache解析漏洞的构造与加固_第1张图片

4. 漏洞详情

    首先上传文件  12.php.jpg

    文件里添加如下代码:

            


Apache解析漏洞的构造与加固_第2张图片


Apache解析漏洞的构造与加固_第3张图片

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


Apache解析漏洞的构造与加固_第4张图片

二.Apache解析漏洞加固

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

OrderDeny,Allow

Deny from all


Apache解析漏洞的构造与加固_第5张图片

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

Apache解析漏洞的构造与加固_第6张图片

解析失败了。

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


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:

?>

    File:

   

endif;


你可能感兴趣的:(Apache解析漏洞的构造与加固)