漏洞復現-CVE-2017-15715-httpd解析漏洞


 
 
 
 
 
 
 
 

0x00實驗環境

攻擊機:win10

靶機:Ubuntu18 (docker搭建的vulhub靶場)

 

0x01實驗目的

了解httpd解析漏洞,並能在之后的文件上傳環境獲取文件上傳新姿勢,Apache HTTPD是一款HTTP服務器,它可以通過mod_php來運行PHP網頁。其2.4.0~2.4.29版本中存在一個解析漏洞。

 

0x02實驗步驟

打開vulhub目錄,進入CVE-2017-15715目錄后,使用以下命令將靶場環境啟動起來:

docker-compose up --build 

進入靶場,訪問頁面后進行測試:

選擇一個圖片馬,然后進行觀察:

 

 

這里主要是由於換行引起的php解析問題,通過上傳php文件,可以發現文件不在白名單范圍內:

 

那我們可以使用在白名單內的文件進行嘗試,同時以文檔.txt的格式進行上傳:

 

發現文件上傳成功,點擊訪問頁面:

 

此時,嘗試上傳惡意文件,依據httpd換行解析漏洞,我們使用在文件名后加入%0a進行換行的形式來使文件解析:

在70后的0d后插入0a以換行的方式提交報文值:

 

 

添加完成,此時修改一句話木馬為

<?php phpinfo();?>

 

發包成功,此時再次訪問頁面,並記得使用%0A使文件解析:

 

成功上傳惡意文件php並解析:

 

 0x03實驗原理

 下文參考https://www.cnblogs.com/leixiao-/p/10223090.html

 

那在當前環境下具體是什么配置不當呢
在ubuntu下,Apache的配置文件在etc/apache2/apache2.conf,查看一下這個文件,發現包含了conf-enabled下的所有.conf配置文件

 

conf-enabled下都是conf-available中文件的鏈接,所以真正的配置文件在conf-available

 

就是該conf-available目錄下的docker-php.conf配置不當造成未知后綴解析漏洞

 

真正成因就在AddHandler application/x-httpd-php .php
是由於運維人員在配置服務器時,為了使Apache能夠解析PHP,而自己添加了一個handler。這句話的作用也是為了讓Apache把PHP文件交給php_moudle解析,但是它與sethandler的區別是它的后綴不是用正則去匹配。所以在文件名的任何位置匹配到php,他都會讓php_module解析。類似1.php.xxx.yyy文件就會是這樣的順序,.yyy無法識別,向左,.xxx無法識別,向左,.php可以識別,就激活php處理器,執行PHP代碼,解析漏洞就產生了。


免責聲明!

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



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