apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)
文章目錄
一、Apache httpd 多后綴解析漏洞
漏洞原理
漏洞復現
漏洞修復
二、Apache httpd 換行解析漏洞(CVE-2017-15715)
漏洞原理
漏洞復現
漏洞修復
三、Apache 目錄遍歷
漏洞原理
漏洞修復
Apache HTTP Server(簡稱Apache)是Apache軟件基金會的一個開放源碼的網頁服務器,可以在大多數計算機操作系統中運行,由于其多平臺和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務器中。
一、Apache httpd 多后綴解析漏洞
httpd是Apache超文本傳輸協議(HTTP)服務器的主程序。被設計為一個獨立運行的后臺進程,它會建立一個處理請求的子進程或線程的池。
漏洞原理
apache httpd支持一個文件有多個后綴,如:test1.php.pdf 。在windows下,會直接根據最后的.來進行分隔,將其判定為pdf文件,但在apache中可不是這樣的,apache會從后往前依次進行判別,遇到不認識的后綴,便會往前讀,如果還是不認識再往前,若是到最后一個都不認識,則會將該文件當成默認類型文件讀取。
那么有人要問了,我怎么知道它認識哪些不認識哪些呢?在/etc下有個mime.types文件定義了apache可以識別的文件后綴。以下是該文件部分內容:
該解析漏洞產生的原因一部分是基于apache的這種特性,還有一大部分原因都是由于開發人員的配置不當構成的,當運維人員在配置文件給.php添加了處理器時:
AddHandler application/x-httpd-php .php
多后綴的文件名中只要存在.php后綴,則就會將該文件當做php文件解析。
漏洞復現
運行環境:vulhub中的apache_parsing_vulnerblity
使用docker-compose up -d 命令運行容器,在本地的80端口運行,發現是文件上傳,于是我們查看源代碼:
查看源代碼發現,這里是對文件的后綴名設置了白名單,只能上傳這幾種類型的文件。接下來我們去查看配置文件:
配置文件中有這么一句,也就是對.php添加了處理器,當多后綴名中有.php時,將其當做php文件解析。所以我們接下來構造payload來繞過過濾:
payload:
http://127.0.0.1:80/test1.php.jpg
其響應如下:
文件上傳成功,而且沒有重命名,于是我們直接去該路徑下運行該文件即可:
phpinfo執行成功,利用該漏洞即可get shell。
漏洞修復
將AddHandler application/x-httpd-php.php的配置文件刪除。
二、Apache httpd 換行解析漏洞(CVE-2017-15715)
影響版本:
2.4.0~2.4.29
漏洞原理
此漏洞的出現是由于apache在修復第一個后綴名解析漏洞時,用正則來匹配后綴。在解析php時xxx.php\x0A將被按照php后綴進行解析,導致繞過一些服務器的安全策略。
漏洞復現
運行vulhub中CVE-2017-15715(該環境中需要自己添加前端代碼),然后查看代碼:
這里在上傳文件時,對文件名進行了黑名單限制,我們利用該漏洞上傳一個1.php文件,使用burpsuit抓包。
在1.php后插入一個\x0A,繞過黑名單過濾。
訪問1.php%0A,即可看到文件被當做php解析。
漏洞修復
1、該漏洞僅針對于apache的2.4.0~2.4.29版本,升級apache版本即可避過該漏洞。
2、獲取文件名時使用$_FILES[‘file’][‘name’]會自動把換行符去掉,防止出現該解析漏洞。(參考離別歌:https://www.colabug.com/2579930.html)
三、Apache 目錄遍歷
漏洞原理
Apahce中httpd.conf配置錯誤導致
漏洞修復
1、phpstudy中
在httpd.conf文件中找到
Options +Indexes +FollowSymLinks +ExecCGI
將其修改并重啟phpstudy
Options -Indexes+FollowSymLinks +ExecCGI
參考文章:https://blog.csdn.net/skystephens/article/details/86611796
2、kali中:
找到apache2的apache2.conf文件,將配置文件修改為(一般默認配置是不允許目錄遍歷的):
總結
以上是生活随笔為你收集整理的apache目录遍历漏洞利用_Apache漏洞—多后缀名解析、目录遍历和(CVE-2017-15715)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么在页面中使用mixins_模压化粪池
- 下一篇: 中高德地图只显示某一城市_干货 | 如何