Apache HTTPD 換行解析漏洞(CVE-2017-15715)
漏洞描述
Apache HTTPD是一款HTTP服務器,它可以通過mod_php來運行PHP網頁。其2.4.0~2.4.29版本中存在一個解析漏洞,在解析PHP時,shell.php\x0A將被按照PHP后綴進行解析,導致繞過一些服務器的安全策略。
影響版本
Apache HTTPd 2.4.0~2.4.29
環境搭建
$ git clone https://github.com/vulhub/vulhub.git
$ cd vulhub/httpd/CVE-2017-15715
$ sudo docker-compose build
$ sudo docker-compose up -d
訪問http://ip:8080/,出現以下頁面即為環境搭建成功
漏洞復現
上傳php后門文件,shell.php
文件上傳失敗
抓取數據包,在shell.php后面插入一個0a,上傳成功
訪問url,php代碼執行成功
http://ip:8080/shell.php%0A
Apache HTTPD 多后綴解析漏洞
漏洞描述
預備知識
在對漏洞介紹之前我們先對httpd.conf文件進行一個介紹,httpd.conf是apache的一個總配置文件,在該文件中,有很多對apache解析網頁參數的設置,我們挑三個來介紹
- AddType:為特定后綴的文件指定MIME類型
- AddLanguage:一個HTML文檔可以同時具備多個語言的版本,如對於file1.html文檔可以具備file1.html.en、file1.html.cn等不同的版本,每個語言后綴可以使用AddLanguage進行定義;這樣服務器可以針對不同國家的客戶,通過與瀏覽器進行協商,發送不同的語言版本
- AddHandler:用於指定非靜態的處理類型,用指定的方式處理非靜態文檔后,再向瀏覽器返回處理結果
有了這個基礎之后,我們再來講解漏洞原理
apache解析的特性
Apache HTTPD 支持一個文件擁有多個后綴,並為不同后綴執行不同的指令,比如,我們在httpd.conf中添加如下配置文件
AddType text/html .html
AddLanguage zh-CN .cn
此時,如果用戶請求文件index.cn.html,他將返回一個中文的html頁面(.cn后綴對應的AddLanguage是zh-CN,.html對應的AddType是text/html,.html和.cn標記的屬性同時被apache執行了),那么,如果在apache配置文件中添加了php對應的解析的話,我們上傳的文件中只要包含.php,php文件就會被執行
# 在配置文件中添加此項,將會造成一個可以繞過上傳白名單的解析漏洞
AddHandler application/x-httpd-php .php
影響版本
跟服務器配置有關,與apache版本無關
環境搭建
$ git clone https://github.com/vulhub/vulhub.git
$ cd vulhub/httpd/apache_parsing_vulnerability
$ sudo docker-compose build
$ sudo docker-compose up -d
訪問http://ip/,出現以下頁面即為環境搭建成功
漏洞復現
我們查看一下apache的配置文件
# 在vulhub/httpd/apache_parsing_vulnerability/conf目錄下
$ cat docker-php.conf
AddHandler application/x-httpd-php .php
DirectoryIndex disabled
DirectoryIndex index.php index.html
<Directory /var/www/>
Options -Indexes
AllowOverride All
可以看到添加了對php文件的解析設置:AddHandler application/x-httpd-php .php
上傳php文件
上傳失敗
將shell.php,修改為shell.php.png
上傳成功,訪問:http://ip/uploadfiles/shell.php.png ,php代碼執行成功
常見Web中間件常見漏洞總結PDF
鏈接:https://pan.baidu.com/s/1dp___A4UBbYmtWDI2MGxZw
提取碼:sht8
復制這段內容后打開百度網盤手機App,操作更方便哦--來自百度網盤超級會員V3的分享