欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Apache如何解析漏洞和ssl遠程命令執(zhí)行

Apache如何解析漏洞和ssl遠程命令執(zhí)行,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

創(chuàng)新互聯(lián)是專業(yè)的城步網(wǎng)站建設(shè)公司,城步接單;提供成都網(wǎng)站設(shè)計、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行城步網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!

Apache換行解析、多后綴解析、以及ssl遠程命令執(zhí)行漏洞分析

1.Apache簡介:

Apache HTTP Server(簡稱 )是 的一個開放源碼的網(wǎng)頁服務(wù)器,可以在大多數(shù)計算機操作系統(tǒng)中運行,由于其多平臺和安全性 Apache Apache軟件基金會 被廣泛使用,是最流行的Web服務(wù)器端軟件之一。它快速、可靠并且可通過簡單的API擴展,將Perl/Python等解釋器編譯到服務(wù)器中。 [2] Apache HTTP服務(wù)器是一個模塊化的服務(wù)器,源于NCSAhttpd服務(wù)器,經(jīng)過多次修改,成為世界使用排名第一的 軟件。 

2.漏洞描述:

Apache換行解析漏洞:

Apache HTTPD是一款HTTP服務(wù)器,它可以通過mod_php來運行PHP網(wǎng)頁。其2.4.0~2.4.29版本中存在一個解析漏洞,在解析PHP時,1.php\x0A將被按 照PHP后綴進行解析,導(dǎo)致繞過一些服務(wù)器的安全策略。

Apache多后綴解析漏洞:

在有多個后綴的情況下,只要一個文件含有.php后綴的文件即將被識別成PHP文件,沒必要是最后一個后綴。利用這個特性,將會造成一個可以繞過上傳白 名單的解析漏洞。

Apache ssl遠程命令執(zhí)行漏洞:

在測試任意文件上傳漏洞的時候,目標(biāo)服務(wù)端可能不允許上傳php后綴的文件。如果目標(biāo)服務(wù)器開啟了SSI與CGI支持,我們可以上傳一個shtml文件,并利用<!--#exec cmd="id" --> 語法執(zhí)行任意命令。

3.漏洞原理:

Apache換行解析漏洞

apache這次解析漏洞的根本原因就是這個 $,正則表達式中,我們都知道$用來匹配字符串結(jié)尾位置,我們來看看$符號在正則表達式中的含義:匹配輸入字符串的結(jié)尾位置。如果設(shè)置了 RegExp 對象的 Multiline 屬性,則 $ 也匹配 '\n' 或 '\r'。要匹配 $ 字符本身,請使用 \$。

因此產(chǎn)生這個漏洞的根本原因就是設(shè)置了 RegExp 對象的 Multiline 屬性,從而使得$可以匹配換行符。

那我們進入docker環(huán)境中看一看apache2是如何配置的

Apache如何解析漏洞和ssl遠程命令執(zhí)行

很明顯這里使用了$符號

我們再來看一看其他版本apaceh的模塊中對于php的配置文件:

<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    # Deny access to raw php sources by default
    # To re-enable it's recommended to enable access to the files
    # only in specific virtual host or directory
    Require all denied
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[3457]?|t|tml|ps)$">
    Require all denied
</FilesMatch>

# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

可以看到這里相對docker環(huán)境中的多了幾種php后綴的識別,如果這里的$設(shè)置過RegExp 對象的 Multiline 屬性,那么該版本的apache也將存在換行解析漏洞。

php php3 php4 php5 php7 pht phtml

Apache多后綴解析漏洞:

配置文件內(nèi)容
AddType text/html . html
AddLanguage zh-CN .c

其給.html后綴增加了media-type,值為text/html;給.cn后綴增加了語言,值為zh-CN。此時,如果用戶請求文件 .html index.cn ,他將返回一個中 文的html頁面。

那么,在有多個后綴的情況下,只要一個文件含有.php后綴的文件即將被識別成PHP文件,沒必要是最后一個后綴。利用這個特性,將會造成一個可以繞過 上傳白名單的解析漏洞。

我們會在漏洞利用部分做一個實驗。

Apache ssl遠程命令執(zhí)行漏洞:

SSI(服務(wù)器端包含)是放置在HTML頁面中的指令,并在服務(wù)頁面時在服務(wù)器上對其進行評估。它們使您可以將動態(tài)生成的內(nèi)容添加到現(xiàn)有的HTML頁面, 而不必通過CGI程序或其他動態(tài)技術(shù)來提供整個頁面。

其實apache的ssl更像是flask的jinjia2,用來實現(xiàn)和前端實現(xiàn)一種動態(tài)交互,只不過在配置ssl之后,如果上傳接口沒有過濾掉.shtml文件,那么就可以就其中 包含我們要執(zhí)行的命令。

<!--#exec cmd="ls -al" -->

4.漏洞利用:

Apache換行解析漏洞:

實驗1

這里有一個小知識就是如何進入docker容器內(nèi)部:

查看鏡像資源
docker ps
為容器打開一個shell環(huán)境
docker exec -it containerID /bin/bash

Apache如何解析漏洞和ssl遠程命令執(zhí)行為了方便起見我們docker容器內(nèi)部裝一個vim

安裝命令
apt-get update
apt-get install vim

在上傳利用之前,我們先在var/www/html目錄下創(chuàng)建一個帶有換行標(biāo)志的文件

vim hack.php$'\n'Apache如何解析漏洞和ssl遠程命令執(zhí)行接下來用瀏覽器訪問該文件Apache如何解析漏洞和ssl遠程命令執(zhí)行驗證成功。說明該版本的apache是存在此漏洞的。

實驗2:

接下來我們通過上傳的方式再次去驗證一下漏洞(注意:這里有個很大的坑

我們先來看一下docker環(huán)境中index.php的內(nèi)容

index.php

<?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);
}
?>

注意這里只給了一個index.php文件,復(fù)現(xiàn)到這,我以為vulhub作者忘掉了一個上傳的html頁面,我特意的寫了上去

<html><head>upload</head><body><form action="index.php" method='post' enctype='multipart/form-data'><input type='file' name='file'><input type='text' name='name'><input type='submit'></form></body>
</html>

打開上傳頁面

Apache如何解析漏洞和ssl遠程命令執(zhí)行

Apache如何解析漏洞和ssl遠程命令執(zhí)行

Apache如何解析漏洞和ssl遠程命令執(zhí)行
這之后就是無盡的報錯之路,百度、Google、改目錄、修權(quán)限。從復(fù)現(xiàn)到放棄。緩了好幾天之后,下決心要解決這個問題。搜了好多文章沒有一個解釋這個問題。

我先寫了一個正常的上傳PHP文件

<?php
if(isset($_FILES['file'])) {
    $temp = explode(".", $_FILES["file"]["name"]);
    $extension = end($temp);
    echo $name;
    if(in_array($extension, ['php', 'php3', 'php4', 'php5', 'phtml', 'pht'])) {
        exit('bad file');
    }
    move_uploaded_file($_FILES['file']['tmp_name'], 'upload/' . $_FILES["file"]["name"]);
    echo "123";
}
?>

和之前的進行對比之后,終于知道哪里出問題了。

通過自己寫的html文件進行上傳name的地方?jīng)]有文件名(注意:這里我們一定要自己補上)為什么要這樣做?因為vulhub給出的

php文件是通過$_POST['name']獲取文件名的。

 $name = basename($_POST['name']);

注意:下邊這種方式獲取文件名是會自動去掉換行符的。所以該漏洞不能使用該方法獲取文件名。

$_FILES["file"]["name"]

Apache如何解析漏洞和ssl遠程命令執(zhí)行

可以看到我們上傳成功了。

Apache如何解析漏洞和ssl遠程命令執(zhí)行

Apache如何解析漏洞和ssl遠程命令執(zhí)行
Apache如何解析漏洞和ssl遠程命令執(zhí)行

Apache多后綴解析漏洞:

Apache如何解析漏洞和ssl遠程命令執(zhí)行

Apache如何解析漏洞和ssl遠程命令執(zhí)行Apache如何解析漏洞和ssl遠程命令執(zhí)行接下來我們做個實驗,修改一下該配置文件讓其可以識別我們自定義后綴文件為PHP文件。

Apache如何解析漏洞和ssl遠程命令執(zhí)行

要注意修改完配置文件,一定要重啟apache服務(wù)但是在docker環(huán)境中我們?nèi)绾巫龅街貑⒎?wù)又不會退出容器呢?就是這條命令了
Apache如何解析漏洞和ssl遠程命令執(zhí)行service apache2 reload

Apache如何解析漏洞和ssl遠程命令執(zhí)行可以看到我們的info.hacker.xxx.jpg成功的按照php格式執(zhí)行

Apache ssl遠程命令執(zhí)行漏洞:

Apache如何解析漏洞和ssl遠程命令執(zhí)行Apache如何解析漏洞和ssl遠程命令執(zhí)行Apache如何解析漏洞和ssl遠程命令執(zhí)行

Apache的漏洞大部分都是配置錯誤問題,很多程序員不熟悉這些配置或者說不熟悉安全配置問題,故而寫出有問題的代碼或災(zāi)難性的配置文件,這才給黑客可趁之機,造成嚴(yán)重后果。而有的配置問題是apache自帶的,那后果將更加嚴(yán)重。所以編寫安全的配置文件同樣重要。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。

分享名稱:Apache如何解析漏洞和ssl遠程命令執(zhí)行
文章源于:http://www.chinadenli.net/article32/iiepsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT網(wǎng)站營銷用戶體驗動態(tài)網(wǎng)站手機網(wǎng)站建設(shè)標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化