Apache解析漏洞的構(gòu)造與加固

一. Apache解析漏洞的構(gòu)造

1. 實驗環(huán)境

????Windows 10+PHPstudy2014

2. apache解析漏洞原理

? ? apache在解析文件時有一個原則:當(dāng)碰到不認識的擴展名時,將會從后往前解析,直到遇到認識的擴展名為止如果都不認識將會暴露源碼。在apache配置不當(dāng)?shù)臅r候就會造成apache解析漏洞。

3. 漏洞構(gòu)造

????打開配置文件httpd.config,添加如下代碼。


4. 漏洞詳情

????首先上傳文件? 12.php.jpg

? ? 文件里添加如下代碼:

? ??????????<?php phpinfo();?>



訪問上傳的網(wǎng)頁,發(fā)現(xiàn)直接解析為php網(wǎng)頁了。


二.Apache解析漏洞加固

打開apache配置文件httpd.conf再最后添加如下代碼

<FilesMatch ".(php.|php3.|php4.|php5.)">

OrderDeny,Allow

Deny from all

</FilesMatch>


然后我們再打開上傳的文件網(wǎng)頁

解析失敗了。

附上index.php源碼(同級目錄下創(chuàng)建uploadfiles文件夾)


<?php

if (!empty($_FILES)):

$ext = pathinfo($_FILES['file_upload']['name'], PATHINFO_EXTENSION);

if (!in_array($ext, ['gif', 'png', 'jpg', 'jpeg'])) {

? ? die('Unsupported filetype uploaded.');

}

$new_name = __DIR__ . '/uploadfiles/' . $_FILES['file_upload']['name'];

if(!move_uploaded_file($_FILES['file_upload']['tmp_name'], $new_name)){

? ? die('Error uploading file - check destination is writeable.');

}

die('File uploaded successfully: ' . $new_name);

else:

?>

<form method="post" enctype="multipart/form-data">

? ? File: <input type="file" name="file_upload">

? ? <input type="submit">

</form>

<?php

endif;


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容