Web中間件常見漏洞總結

1、IIS中間組件:php

一、PUT漏洞css

二、短文件名猜解html

三、遠程代碼執行java

四、解析漏洞python

2、Apache中間組件:nginx

一、解析漏洞程序員

二、目錄遍歷web

3、Nginx中間組件:redis

一、文件解析shell

二、目錄遍歷

三、CRLF注入

四、目錄穿越

4、Tomcat中間組件:

一、遠程代碼執行

二、war後門文件部署

5、jBoss中間組件:

一、反序列化漏洞

二、war後門文件部署

6、WebLogic中間組件:

一、反序列化漏洞

二、SSRF

三、任意文件上傳

四、war後門文件部署

7、其它中間件相關漏洞

一、FastCGI未受權訪問、任意命令執行

二、PHPCGI遠程代碼執行

1、IIS解析漏洞:

IIS的安全脆弱性曾長時間被業內詬病,一旦IIS出現遠程執行漏洞威脅將會很是嚴重。遠程執行代碼漏洞存在於 HTTP 協議堆棧 (HTTP.sys) 中,當 HTTP.sys 未正確分析經特殊設計的 HTTP 請求時會致使此漏洞。成功利用此漏洞的攻擊者能夠在系統賬戶的上下文中執行任意代碼,能夠致使IIS服務器所在機器藍屏或讀取其內存中的機密數據.

PUT漏洞介紹及成因:

IIS Server在Web服務擴展中開啓WebDAV ,配置了能夠寫入權限,形成任意文件上傳,受影響版本:IIS6.0,漏洞復現:開啓WebDAV和寫入權限.
 
圖片發自簡書App

 

 
圖片發自簡書App

利用BurpSute測試:

BurpSute抓包,將GET請求改成OPTIONS.
 
圖片發自簡書App

利用桂林老兵寫入權限:

 
圖片發自簡書App

成功上傳,再上傳一句話木馬,而後用菜刀鏈接,獲取getshell:

 
圖片發自簡書App
PUT漏洞修復:關閉WebDAV和寫入權限.

2、短文件名猜解漏洞介紹及成因:

IIS的短文件名機制,能夠暴力猜解短文件名,訪問構造的某個存在的短文件名,會返回404,訪問構造的某個不存在的短文件名,返回400,漏洞復現:在網站根目錄下添加aaaaaaaaaa.html文件:
 
圖片發自簡書App

進行猜解:

 
圖片發自簡書App

 

 
圖片發自簡書App
漏洞修復:1.升級.net framework;2.修改註冊表禁用短文件名功能;3.快捷鍵Win+R打開命令窗口,輸入regedit打開註冊表窗口,找到路徑:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,將其中NtfsDisable8dot3NameCreation這一項的值設爲 1,1表明不建立短文件名格式,修改完成後,須要重啓系統生效;4.CMD關閉NTFS 8.3文件格式支持;5.將web文件夾的內容拷貝到另外一個位置,如c:\www到d:\w,而後刪除原文件夾,再重命名d:\w到c:\www,如圖:
 
圖片發自簡書App

3、遠程代碼執行漏洞介紹及成因:

在IIS6.0處理PROPFIND指令的時候,因爲對url的長度沒有進行有效的長度控制和檢查,致使執行memcpy對虛擬路徑進行構造的時候,引起棧溢出,從而致使遠程代碼執行,漏洞復現:漏洞環境搭建:在Windows server 2003 r2 32位上安裝iis6.0,觸發漏洞:在本地執行exp,exp以下:

 

 
圖片發自簡書App

執行成功後,服務器端彈出計算器:

 
圖片發自簡書App
短文件名猜解漏洞漏洞修復:1.關閉WebDAV服務;2.使用相關防禦設備.

4、解析漏洞介紹及成因:

IIS 6.0在處理含有特殊符號的文件路徑時會出現邏輯錯誤,從而形成文件解析漏洞,漏洞有兩種徹底不一樣的利用方式:

/test.asp/test.jpg

test.asp;.jpg

漏洞復現:利用方式1:

第一種是新建名爲 「test.asp」目錄,該目錄中的任何文件都被IIS看成asp程序執行,特殊符號是 「/」:
 
圖片發自簡書App
利用方式2:第二種是上傳名爲 「test.asp;.jpg」 的文件,雖然該文件真正的後綴名是 「.jpg」, 但因爲含有特殊符號 「;」 ,仍會被 IIS 當作asp程序執行:
 
圖片發自簡書App

IIS7.5 文件解析漏洞:

test.jpg/.php

注:URL中文件後綴是 .php ,便不管該文件是否存在,都直接交給 php 處理,而 php 又默認開啓 「cgi.fix_pathinfo」, 會對文件進行 「 修理 」 ,可謂 「 修理 」 ?舉個例子,當 php 遇到路徑 「/aaa.xxx/bbb.yyy」 時,若 「/aaa.xxx/bbb.yyy」 不存在,則會去掉最後的 「bbb.yyy」 ,而後判斷 「/aaa.xxx」 是否存在,若存在,則把 「/aaa.xxx」 看成文件,如有文件 test.jpg ,訪問時在其後加 /.php ,即可以把 「test.jpg/.php」 交給 php , php 修理文件路徑 「test.jpg/.php」 獲得 」test.jpg」 ,該文件存在,便把該文件做爲 php 程序執行。
文件解析漏洞修復:1.對新建目錄文件名進行過濾,不容許新建包含‘.’的文件;2.曲線網站後臺新建目錄的功能,不容許新建目錄;3.限制上傳的腳本執行權限,不容許執行腳本;4.過濾.asp/xm.jpg,經過ISApi組件過濾

3、 Apache解析漏洞介紹及成因:

Apache文件解析漏洞與用戶的配置有密切關係,嚴格來講屬於用戶配置問題。,Apache文件解析漏洞涉及到一個解析文件的特性:Apache默認一個文件能夠有多個以點分隔的後綴,當右邊的後綴沒法識別,不在mime.tyoes內,則繼續向左識別,當請求這樣一個文件:shell.xxx.yyy

yyy->沒法識別,向左

xxx->沒法識別,向左

php->發現後綴是php,交給php處理這個文件,漏洞復現:上傳一個後綴名爲360的php文件:
 
圖片發自簡書App
Apache解析漏洞修復:將AddHandler application/x-httpd-php .php配置文件刪除.

目錄遍歷漏洞介紹及成因:

因爲配置錯誤致使的目錄遍歷,漏洞復現:
 
圖片發自簡書App

Apache目錄遍歷漏洞修復:

修改apache配置文件httpd.conf,找到Options+Indexes+FollowSymLinks +ExecCGI並修改爲 Options-Indexes+FollowSymLinks +ExecCGI 並保存:
 
圖片發自簡書App
 
圖片發自簡書App

4、 Nginx文件解析漏洞介紹及成因:

對任意文件名,在後面添加/任意文件名.php的解析漏洞,好比本來文件名是test.jpg,能夠添加test.jpg/x.php進行解析攻擊,漏洞復現:在網站根目錄下新建一個i.gif的文件,在裏面寫入phpinfo(),在瀏覽器中打開測試:
 
圖片發自簡書App
利用文件解析漏洞,輸入192.168.139.129:100/i.gif.2.php,發現沒法解析:
 
圖片發自簡書App

將/etc/php5/fpm/pool.d/www.conf中security.limit_extensions = .php中.php刪除:

 
圖片發自簡書App

再次在瀏覽器中打開,成功解析:

 
圖片發自簡書App
Nginx文件解析漏洞修復:1.將php.ini文件中的cgi.fix_pathinfo的值設爲0.這樣php在解析1.php/1.jpg這樣的目錄時,只要1.jpg不存在就會顯示404;2.將/etc/php5/fpm/pool.d/www.conf中security.limit_ectensions後面的值設爲.php.

目錄遍歷漏洞簡介及成因:

Nginx目錄遍歷與Apache同樣,屬於配置方面的問題,錯誤的配置可到致使目錄遍歷與源碼泄露,漏洞復現:打開test目錄,發現沒法打開:
 
圖片發自簡書App

修改/etc/nginx/sites-avaliable/default,在以下圖所示的位置添加autoindex on/:

 
圖片發自簡書App

再次訪問:

 
圖片發自簡書App
Nginx目錄漏洞修復:將/etc/nginx/sites-avaliable/default裏的autoindex on改成autoindex off.

CRLF注入漏洞簡介及成因:

CRLF時「回車+換行」(\r\n)鍵的簡稱,HTTP Header與HTTP Body時用兩個CRLF分隔的,瀏覽器根據兩個CRLF來取出HTTP內容並顯示出來,經過控制HTTP消息頭中的字符,注入惡意換行,就能注入一些會話cookie或者html代碼,因爲Nginx配置不正確,致使注入的代碼會被執行,漏洞復現:訪問頁面,Brup抓包,請求加上:/%0d%0a%0d%0a<img src=1 onerror=alert(/xss/)>,因爲頁面重定向,並無彈窗:
 
圖片發自簡書App
CRLF注入漏洞修復:Nginx的配置文件/etc/nginx/conf.d/error1.conf修改成使用不解碼的url跳轉.

5、目錄穿越漏洞簡介及成因:

Nginx反向代理,靜態文件存儲在/home/下,而訪問時須要在url中輸入files,配置文件中/files沒有用/閉合,致使能夠穿越至上層目錄,漏洞復現,訪問:http://192.168.139.128:8081/files/
 
圖片發自簡書App

目錄穿越漏洞,訪問:http://192.168.139.128:8081/files../,成功實現目錄穿越:

 
圖片發自簡書App
目錄穿越漏洞修復:Nginx配置文件/etc/nginx/conf.d/error2.conf的/files使用/閉合.

5、 Tomcat遠程代碼執行漏洞簡介及成因:

Tomcat運行在Windows主機上,且啓用了 HTTP PUT請求方法,可經過構造的攻擊請求向服務器上傳包含任意代碼JSP文件,形成任意代碼執行,受影響版本:Apache Tomcat 7.0.0 – 7.0.81,漏洞復現:配置漏洞,開啓put方法可上傳文件功能,Tomcat文件夾下的/conf/web.xml文件插入:

<init-param>

          <param-name>readonly</param-name>

          <param-value>false</param-value>

    </init-param>

重啓Tomcat服務:

 
圖片發自簡書App
注:訪問127.0.0.1:8080,BurpSute抓包,send to Repeater選項重放模塊,將請求方式改成PUT,建立一個122.jsp,並用%20轉義空格字符,123.jsp代碼:

<%Runtime.getRuntime().exec(request.getParameter("cmd"));%>

返回201,說明建立成功:

 
圖片發自簡書App

訪問127.0.0.1:8080/122.jsp?cmd=calc,彈出計算器:

 
圖片發自簡書App
Tomcat遠程代碼執行漏洞修復:1.檢測當前版本是否在影響範圍內,並禁用PUT方法;2.更新並升級至最新版.

War後門文件部署漏洞簡介及成因:

Tomcat支持在後臺部署war文件,能夠直接將webshell部署到web目錄下,若後臺管理頁面存在弱口令,則能夠經過爆破獲取密碼,漏洞復現:Tomcat安裝目錄conf.tomcat-users.xml配置以下:
 
圖片發自簡書App

訪問後臺,登錄:

 
圖片發自簡書App

上傳一個war包jsp後門:

 
圖片發自簡書App

成功上傳並解析,打開:

 
圖片發自簡書App

可執行系統命令:

 
圖片發自簡書App
漏洞修復:1.在系統上以低權限運行Tomcat應用程序。建立一個專門的 Tomcat服務用戶,該用戶只能擁有一組最小權限,例如不容許遠程登陸;2.增長對於本地和基於證書的身份驗證,部署帳戶鎖定機制,對於集中式認證,目錄服務也要作相應配置,在CATALINA_HOME/conf/web.xml文件設置鎖定機制和時間超時限制;3.以及針對manager-gui/manager-status/manager-script等目錄頁面設置最小權限訪問限制;4.後臺管理避免弱口令.

6、 jBoss反序列化漏洞介紹及成因:

Java序列化,簡而言之就是把java對象轉化爲字節序列的過程。而反序列話則是再把字節序列恢復爲java對象的過程,然而就在這一轉一變得過程當中,程序員的過濾不嚴格,就能夠致使惡意構造的代碼的實現,漏洞復現:靶機啓動jboss,攻擊機訪問靶機服務:
 
圖片發自簡書App

訪問/invoker/readonly,返回500,說明頁面存在,此頁面有反序列化漏洞:

 
圖片發自簡書App

BrupSute抓包:

 
圖片發自簡書App

改包,修改POST payload.bin中數據:

 
圖片發自簡書App

 
圖片發自簡書App

查看靶機,彈出計算器:

 
圖片發自簡書App
漏洞修復:1.不須要http-invoker.sar 組件的用戶可直接刪除此組件;2.用於對httpinvoker組件進行訪問控制.

War後門文件部署漏洞介紹及成因:

jBoss後臺管理頁面存在弱口令,經過爆破得到帳號密碼,登錄後臺上傳包含後門war包,漏洞復現:
 
圖片發自簡書App

 
圖片發自簡書App

點擊Web Application(war)s:

 
圖片發自簡書App

點擊add a new resource:

 
圖片發自簡書App

選擇一個war包上傳,上傳後進入該war包,點擊start:

 
圖片發自簡書App

查看status爲sucessful:

 
圖片發自簡書App

訪問該war包頁面,進入後門,可進行文件管理和系統命令執行:

 
圖片發自簡書App
 
圖片發自簡書App

7、 WebLogic反序列化漏洞簡介及成因:

Java序列化,簡而言之就是把java對象轉化爲字節序列的過程。而反序列話則是再把字節序列恢復爲java對象的過程,然而就在這一轉一變得過程當中,程序員的過濾不嚴格,就能夠致使惡意構造的代碼的實現,漏洞復現使用vulhub實驗環境,啓動實驗環境,訪問靶機,抓包,修改數據包:
 
圖片發自簡書App

Kali啓動NC監聽,發送數據包成功後,拿到shell:

 
圖片發自簡書App
WebLogic反序列化漏洞修復:1.升級Oracle 10月份補丁;2.對訪問wls-wsat的資源進行訪問控制.

SSRF漏洞簡介及成因:

Weblogic中存在一個SSRF漏洞,利用該漏洞能夠發送任意HTTP請求,進而攻擊內網中redis、fastcgi等脆弱組件,漏洞復現,使用vulhub實驗環境,啓動環境,訪問:http://192.168.139.129:7001/uddiexplorer/SearchPublicRegistries.jsp:
 
圖片發自簡書App

BurpSute抓包,修改請求:

 
圖片發自簡書App

啓動NC監聽2222端口拿到Shell:

 
圖片發自簡書App
SSRF漏洞修復:1.將SearchPublicRegistries.jsp直接刪除;2.刪除uddiexplorer文件夾、限制uddiexplorer應用只能內網訪問;3.將weblogic安裝目錄wlserver_10.3/server/lib/uddiexplorer.war作好備份、將weblogic安裝目錄下的server/lib/uddiexplorer.war下載、用winrar等工具打開uddiexplorer.war、將其下的SearchPublicRegistries.jsp重命名爲SearchPublicRegistries.jspx、保存後上傳回服務端替換原先的uddiexplorer.war、對於多臺主機組成的集羣,針對每臺主機都要作這樣的操做、因爲每一個server的tmp目錄下都有緩存因此修改後要完全重啓weblogic(即停應用–停server–停控制檯–啓控制檯–啓server–啓應用).

任意文件上傳漏洞簡介及成因:

經過訪問config.do配置頁面,先更改Work Home工做目錄,用有效的已部署的Web應用目錄替換默認的存儲JKS Keystores文件的目錄,以後使用」添加Keystore設置」的功能,可上傳惡意的JSP腳本文件,漏洞復現:打開訪問連接:http://192.168.139.129:7001/ws_utc/config.do:
 
圖片發自簡書App
注:設置Work Home Dir爲`/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css`,而後點擊安全 -> 增長,而後上傳jsp大馬,獲取WebShell:
 
圖片發自簡書App

上傳後查看返回數據包,發現有時間戳:

 
圖片發自簡書App

能夠看到時間戳爲1543145154632,訪問http://192.168.139.129:7001/ws_utc/css/config/keystore/1543145154632_lele.jsp,能夠進行文件管理、文件上傳、系統命令執行:

 
圖片發自簡書App

嘗試如下執行系統命令:

 
圖片發自簡書App
任意文件上傳漏洞修復:1.使用Oracle官方通告中補丁連接:http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html;https://support.oracle.com/rs?type=doc&id=2394520.1;2:進入Weblogic Server管理控制檯,domain設置中,啓用」生產模式」 .

War後門文件部署漏洞簡介及成因:

因爲WebLogic後臺存在弱口令,可直接登錄後臺上傳包含後門的war包,漏洞復現:訪問http://192.168.139.129:7001/console

 

 
圖片發自簡書App

使用弱口令登錄至後臺,點擊鎖定並編輯:

 
圖片發自簡書App

選擇部署,進一步點擊右邊安裝:

 
圖片發自簡書App

點擊上傳文件-進入文件上傳界面,選擇要上傳的war包:

 
圖片發自簡書App

進入下一步,選擇對應的war包進行部署,下一步下一步直至完成:

 
圖片發自簡書App

 

 
圖片發自簡書App

 

 
圖片發自簡書App

點擊激活更改:

 
圖片發自簡書App

啓動上傳war包所生成的服務:

 
圖片發自簡書App

獲取WebShell:

 
圖片發自簡書App
War後門文件部署漏洞修復:防火牆設置端口過濾,也能夠設置只容許訪問後臺的IP列表,避免後臺弱口令.

8、 FastCGI未受權訪問、任意命令執行漏洞簡介及成因:

服務端使用fastcgi協議並對外網開放9000端口,能夠構造fastcgi協議包內容,實現未受權訪問服務端.php文件以及執行任意命令,

漏洞復現:使用vulhub實驗環境,啓動實驗環境,python fpm.py 192.168.237.136 /etc/passwd:

 
圖片發自簡書App
注:因爲訪問非*.PHP文件,因此返回結果403,使用命令執行一個默認存在PHP文件,命令:
python fpm.py 192.168.237.136 /usr/local/lib/php/PEAR.php
 
圖片發自簡書App

利用命令進行任意命令執行復現:

python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php-c '<?php echo `pwd`; ?>'
python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php-c '<?php echo `ifconfig`; ?>'
python fpm.py 192.168.139.129 /usr/local/lib/php/PEAR.php-c '<?php echo `ls`; ?>'
 
圖片發自簡書App
FastCGI未受權訪問、任意命令執行漏洞修復:更改默認端口.

PHPCGI遠程代碼執行漏洞簡介及成因:

在Apache調用php解釋器解釋.php文件時,會將url參數傳我給php解釋器,若是在url後加傳命令行開關(例如-s、-d 、-c或-dauto_prepend_file%3d/etc/passwd+-n)等參數時,會致使源代碼泄露和任意代碼執行,此漏洞影響php-5.3.12之前的版本,mod方式、fpm方式不受影響.

漏洞復現:使用vulhub實驗環境,啓動環境,訪問http://192.168.139.129:8080/index.php:

 
圖片發自簡書App

BrupSute抓包,修改包:

 
圖片發自簡書App
PHPCGI遠程代碼執行漏洞修復:1.升級php版本;2.在apache上作文章,開啓url過濾,把危險的命令行參數給過濾掉,因爲這種方法修補比較簡單,具體方案:修改http.conf文件,找到<Directory/>增長如下三行

RewriteEngine on

RewriteCond %{QUERY_STRING} ^(%2d|-)[^=]+$ [NC]

RewriteRule ^(.*) $1? [L]

注:重啓Apache服務便可,可是要考慮到,至關於每次request就要進行一次url過濾,若是訪問量大的話,可能會增長Apache服務負擔.

3.打上PHP補丁,補丁下載地址:

https://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/.
做者:強大技術 連接:https://www.jianshu.com/p/b8d95de87344 來源:簡書 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。
相關文章
相關標籤/搜索