利用最新Apache解析漏洞(CVE-2017-15715)繞過上傳黑名單


轉載自:https://www.leavesongs.com/PENETRATION/apache-cve-2017-15715-vulnerability.html

目標環境

比如,目標存在一個上傳的邏輯:

<?php
if(isset($_FILES['file'])) {
    $name = basename($_POST['name']);
    $ext = pathinfo($name,PATHINFO_EXTENSION);
    if(in_array($ext, ['php', 'php3', 'php4', 'php5', 'phtml', 'pht'])) {
        exit('bad file');
    }
    move_uploaded_file($_FILES['file']['tmp_name'], './' . $name);
}

可見,這里用到了黑名單,如果發現后綴在黑名單中,則進行攔截。

然后,我們用docker啟動一個默認的Apache PHP(Apache版本在2.4.0到2.4.29即可):

docker run -d -p 8080:80 --name apache php:5.5-apache

將上述代碼放置在容器內的/var/www/html目錄下,設置好寫權限,即可進行測試。

繞過黑名單getshell

正常上傳php文件,被攔截:

可以上傳1.php.xxx,但是不解析,說明老的Apache解析漏洞不存在:

我們利用CVE-2017-15715,上傳一個包含換行符的文件。注意,只能是\x0A,不能是\x0D\x0A,所以我們用hex功能在1.php后面添加一個\x0A

然后訪問/1.php%0A,即可發現已經成功getshell:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM