日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常见web中间件及其漏洞概述

發布時間:2023/12/18 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常见web中间件及其漏洞概述 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常見web中間件及其漏洞概述

    • 一、 IIS漏洞分析
      • (一)PUT漏洞
      • (二)短文件名猜解
      • (三) 遠程代碼執行
      • (四) 解析漏洞
    • 二、 Apache漏洞分析
      • (一) 解析漏洞
      • (二) 目錄遍歷
    • 三、 Nginx漏洞分析
      • (一)文件解析
      • (二)目錄遍歷
      • (三) CRLF注入
      • (四) 目錄穿越
    • 四、 Tomcat漏洞分析
      • (一) 遠程代碼執行
      • (二)war后門文件部署
    • 五、 jBoss漏洞分析
      • (一) 反序列化漏洞
      • (二) war后門文件部署
    • 六、 WebLogic漏洞分析
      • (一) 反序列化漏洞
      • (二) SSRF
      • (三) 任意文件上傳
      • (四) war后門文件部署
    • 七、 其它中間件相關漏洞
      • (一) FastCGI未授權訪問、任意命令執行
      • (二) PHPCGI遠程代碼執行

一、 IIS漏洞分析

IIS簡介

IIS是Internet Information Services的縮寫,意為互聯網信息服務,是由微軟公司提供的基于運行Microsoft Windows的互聯網基本服務。最初是Windows NT版本的可選包,隨后內置在Windows 2000、Windows XP Professional和Windows Server 2003一起發行,但在Windows XP Home版本上并沒有IIS。IIS是一種Web(網頁)服務組件,其中包括Web服務器、FTP服務器、NNTP服務器和SMTP服務器,分別用于網頁瀏覽、文件傳輸、新聞服務和郵件發送等方面,它使得在網絡(包括互聯網和局域網)上發布信息成了一件很容易的事。

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

(一)PUT漏洞

1、漏洞介紹及成因

IIS Server 在 Web 服務擴展中開啟了 WebDAV ,配置了可以寫入的權限,造成任意文件上傳。

版本: IIS6.0

2、漏洞復現

1) 開啟WebDAV 和寫權限

2) 利用burp測試

抓包,將GET請求改為OPTIONS

3)利用工具進行測試

成功上傳,再上傳一句話木馬,然后用菜刀連接,getshell

3、漏洞修復

關閉WebDAV 和寫權限

(二)短文件名猜解

1、漏洞介紹及成因

IIS的短文件名機制,可以暴力猜解短文件名,訪問構造的某個存在的短文件名,會返回404,訪問構造的某個不存在的短文件名,返回400。

2、漏洞復現

1)、在網站根目錄下添加aaaaaaaaaa.html文件

3) 進行猜解

3、漏洞修復

修復方法:

1)升級.net framework

2)修改注冊表禁用短文件名功能

快捷鍵Win+R打開命令窗口,輸入regedit打開注冊表窗口,找到路徑:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,將其中的 NtfsDisable8dot3NameCreation這一項的值設為 1,1代表不創建短文件名格式,修改完成后,需要重啟系統生效

3)CMD關閉NTFS 8.3文件格式的支持

4)將web文件夾的內容拷貝到另一個位置,如c:\www到d:\w,然后刪除原文件夾,再重命名d:\w到c:\www。

修復后:

4、局限性

  • 此漏洞只能確定前6個字符,如果后面的字符太長、包含特殊字符,很難猜解;

  • 如果文件名本身太短(無短文件名)也是無法猜解的;

  • 如果文件名前6位帶空格,8.3格式的短文件名會補進,和真實文件名不匹配;

  • (三) 遠程代碼執行

    1、 漏洞介紹及成因

    在IIS6.0處理PROPFIND指令的時候,由于對url的長度沒有進行有效的長度控制和檢查,導致執行memcpy對虛擬路徑進行構造的時候,引發棧溢出,從而導致遠程代碼執行。

    2、 漏洞復現

    1)漏洞環境搭建

    在windows server 2003 r2 32位上安裝iis6.0

    2) 觸發漏洞

    在本地執行exp,exp如下

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

    3、 漏洞修復

    1)關閉 WebDAV 服務

    2) 使用相關防護設備

    (四) 解析漏洞

    1、 漏洞介紹及成因

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

    /test.asp/test.jpg

    test.asp;.jpg

    2、漏洞復現

    利用方式 1

    第一種是新建一個名為 “test.asp” 的目錄,該目錄中的任何文件都被 IIS 當作 asp 程序執行(特殊符號是 “/” )

    利用方式 2

    第二種是上傳名為 “test.asp;.jpg” 的文件,雖然該文件真正的后綴名是 “.jpg”, 但由于含有特殊符號 “;” ,仍會被 IIS 當做 asp 程序執行

    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 程序執行了。

    3、 漏洞修復

    1)對新建目錄文件名進行過濾,不允許新建包含‘.’的文件

    2)曲線網站后臺新建目錄的功能,不允許新建目錄

    3)限制上傳的腳本執行權限,不允許執行腳本

    4)過濾.asp/xm.jpg,通過ISApi組件過濾

    二、 Apache漏洞分析

    Apache簡介
    Apache 是世界使用排名第一的Web 服務器軟件。它可以運行在幾乎所有廣泛使用的 計算機平臺上,由于其 跨平臺 和安全性被廣泛使用,是最流行的Web服務器端軟件之一。它快速、可靠并且可通過簡單的API擴充,將 Perl/ Python等 解釋器編譯到服務器中。

    (一) 解析漏洞

    1、 漏洞介紹及成因

    Apache文件解析漏洞與用戶的配置有密切關系,嚴格來說屬于用戶配置問題。

    Apache文件解析漏洞涉及到一個解析文件的特性:

    Apache默認一個文件可以有多個以點分隔的后綴,當右邊的后綴無法識別(不在mime.tyoes內),則繼續向左識別,當我們請求這樣一個文件:shell.xxx.yyy

    yyy->無法識別,向左

    xxx->無法識別,向左

    php->發現后綴是php,交給php處理這個文件

    2、 漏洞復現

    上傳一個后綴名為360的php文件

    3、 漏洞修復

    將AddHandler application/x-httpd-php .php的配置文件刪除。

    (二) 目錄遍歷

    1、 漏洞介紹及成因

    由于配置錯誤導致的目錄遍歷

    2、 漏洞復現

    3、 漏洞修復

    修改apache配置文件httpd.conf

    找到Options+Indexes+FollowSymLinks +ExecCGI并修改成 Options-Indexes+FollowSymLinks +ExecCGI 并保存;

    三、 Nginx漏洞分析

    ** Nginx簡介**
    Nginx 是一款 輕量級的 Web 服務器、 反向代理 服務器及 電子郵件(IMAP/POP3)代理服務器,并在一個BSD-like 協議下發行。其特點是占有內存少, 并發能力強,事實上nginx的并發能力確實在同類型的網頁服務器中表現較好

    (一)文件解析

    1、 漏洞介紹及成因

    對任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是test.jpg,可以添加test.jpg/x.php進行解析攻擊。

    2、 漏洞復現

    在網站根目錄下新建一個i.gif的文件,在里面寫入phpinfo()

    在瀏覽器中打開

    利用文件解析漏洞,輸入192.168.139.129:100/i.gif.2.php,發現無法解析

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

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

    3、 漏洞修復

    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

    (二)目錄遍歷

    1、 漏洞簡介及成因

    Nginx的目錄遍歷與Apache一樣,屬于配置方面的問題,錯誤的配置可到導致目錄遍歷與源碼泄露‘

    2、 漏洞復現

    打開test目錄,發現無法打開

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

    再次訪問

    3、 漏洞修復

    將/etc/nginx/sites-avaliable/default里的autoindex on改為autoindex off

    (三) CRLF注入

    1、 漏洞簡介及成因

    CRLF時“回車+換行”(\r\n)的簡稱。

    HTTP Header與HTTP Body時用兩個CRLF分隔的,瀏覽器根據兩個CRLF來取出HTTP內容并顯示出來。

    通過控制HTTP消息頭中的字符,注入一些惡意的換行,就能注入一些會話cookie或者html代碼,由于Nginx配置不正確,導致注入的代碼會被執行。

    2、 漏洞復現

    訪問頁面,抓包

    請求加上/%0d%0a%0d%0a

    由于頁面重定向,并沒有彈窗。

    3、 漏洞修復

    Nginx的配置文件/etc/nginx/conf.d/error1.conf修改為使用不解碼的url跳轉。

    (四) 目錄穿越

    1、 漏洞簡介及成因

    Nginx反向代理,靜態文件存儲在/home/下,而訪問時需要在url中輸入files,配置文件中/files沒有用/閉合,導致可以穿越至上層目錄。

    2、 漏洞復現

    訪問:http://192.168.139.128:8081/files/

    訪問:http://192.168.139.128:8081/files…/

    成功實現目錄穿越:

    3、 漏洞修復

    Nginx的配置文件/etc/nginx/conf.d/error2.conf的/files使用/閉合。

    四、 Tomcat漏洞分析

    Tomcat簡介
    Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬于輕量級應用 服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。對于一個初學者來說,可以這樣認為,當在一臺機器上配置好Apache 服務器,可利用它響應 HTML ( 標準通用標記語言下的一個應用)頁面的訪問請求。實際上Tomcat是Apache 服務器的擴展,但運行時它是獨立運行的,所以當運行tomcat 時,它實際上作為一個與Apache 獨立的進程單獨運行的。

    (一) 遠程代碼執行

    1、 漏洞簡介及成因

    Tomcat 運行在Windows 主機上,且啟用了 HTTP PUT 請求方法,可通過構造的攻擊請求向服務器上傳包含任意代碼的 JSP 文件,造成任意代碼執行。

    影響版本: Apache Tomcat 7.0.0 – 7.0.81

    2、 漏洞復現

    配置漏洞,開啟put方法可上傳文件功能。

    tomcat文件夾下的/conf/web.xml文件插入:

    <init-param><param-name>readonly</param-name><param-value>false</param-value></init-param>

    重啟tomcat服務。

    訪問127.0.0.1:8080,burp抓包,send to Repeater,將請求方式改為PUT,創建一個122.jsp,并用%20轉義空格字符。123.jsp內容為:

    <%Runtime.getRuntime().exec(request.getParameter(“cmd”));%>
    返回201,說明創建成功。

    訪問127.0.0.1:8080/122.jsp?cmd=calc。

    彈出計算器:

    3、 漏洞修復

    1)檢測當前版本是否在影響范圍內,并禁用PUT方法。

    2)更新并升級至最新版。

    (二)war后門文件部署

    1、漏洞簡介及成因

    Tomcat 支持在后臺部署war文件,可以直接將webshell部署到web目錄下。

    若后臺管理頁面存在弱口令,則可以通過爆破獲取密碼。

    2、漏洞復現

    Tomcat安裝目錄下conf里的tomcat-users.xml配置如下:

    訪問后臺,登陸:

    上傳一個war包,里面是jsp后門:

    成功上傳并解析,打開:

    可執行系統命令:

    也可進行文件管理,任意查看、刪除、上傳文件:

    3、漏洞修復

    1)在系統上以低權限運行Tomcat應用程序。創建一個專門的 Tomcat服務用戶,該用戶只能擁有一組最小權限(例如不允許遠程登錄)。

    2)增加對于本地和基于證書的身份驗證,部署賬戶鎖定機制(對于集中式認證,目錄服務也要做相應配置)。在CATALINA_HOME/conf/web.xml文件設置鎖定機制和時間超時限制。

    3)以及針對manager-gui/manager-status/manager-script等目錄頁面設置最小權限訪問限制。

    4)后臺管理避免弱口令。

    五、 jBoss漏洞分析

    jBoss簡介
    jBoss是一個基于J2EE的開發源代碼的應用服務器。 JBoss代碼遵循LGPL許可,可以在任何商業應用中免費使用。JBoss是一個管理EJB的容器和服務器,支持EJB1.1、EJB 2.0和EJB3的規范。但JBoss核心服務不包括支持servlet/JSP的WEB容器,一般與Tomcat或Jetty綁定使用。

    (一) 反序列化漏洞

    1、 漏洞介紹及成因

    Java序列化,簡而言之就是把java對象轉化為字節序列的過程。而反序列話則是再把字節序列恢復為java對象的過程,然而就在這一轉一變得過程中,程序員的過濾不嚴格,就可以導致惡意構造的代碼的實現。

    2、 漏洞復現

    靶機啟動jboss。

    攻擊機訪問靶機服務:

    訪問/invoker/readonly。

    返回500,說明頁面存在,此頁面有反序列化漏洞:

    抓包:

    改包。

    POST payload.bin中數據。

    查看靶機,彈出計算器。

    3、 漏洞修復

    有效解決方案:升級到JBOSS AS7版本臨時解決方案:

    1)不需要http-invoker.sar 組件的用戶可直接刪除此組件;

    2)用于對 httpinvoker 組件進行訪問控制。

    (二) war后門文件部署

    1、 漏洞介紹及成因

    jBoss后臺管理頁面存在弱口令,通過爆破獲得賬號密碼。登陸后臺上傳包含后門的war包。

    2、 漏洞復現

    點擊Web Application(war)s。

    點擊add a new resource。

    選擇一個war包上傳,上傳后,進入該war包,點擊start。

    查看status為sucessful。

    訪問該war包頁面,進入后門。

    可進行文件管理和系統命令執行。

    六、 WebLogic漏洞分析

    WebLogic簡介
    WebLogic是美國Oracle公司出品的一個applicationserver,確切的說是一個基于JAVAEE架構的中間件,WebLogic是用于開發、集成、部署和管理大型分布式Web應用、網絡應用和數據庫應用的Java應用服務器。將Java的動態功能和Java Enterprise標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。

    (一) 反序列化漏洞

    1、 漏洞簡介及成因

    Java序列化,簡而言之就是把java對象轉化為字節序列的過程。而反序列話則是再把字節序列恢復為java對象的過程,然而就在這一轉一變得過程中,程序員的過濾不嚴格,就可以導致惡意構造的代碼的實現。

    2、漏洞復現

    使用vulhub實驗環境,啟動實驗環境,訪問靶機,抓包,修改數據包。

    Kali啟動監聽。

    發送數據包成功后,拿到shell。

    3、漏洞修復

    1)升級Oracle 10月份補丁。

    2)對訪問wls-wsat的資源進行訪問控制。

    (二) SSRF

    1、 漏洞簡介及成因

    Weblogic 中存在一個SSRF漏洞,利用該漏洞可以發送任意HTTP請求,進而攻擊內網中redis、fastcgi等脆弱組件。

    2、 漏洞復現

    使用vulhub實驗環境,啟動環境。

    訪問http://192.168.139.129:7001/uddiexplorer/SearchPublicRegistries.jsp。

    用burp抓包,修改請求。

    啟動nc監聽2222端口。

    拿到shell。

    3、 漏洞修復

    方法一:

    以修復的直接方法是將SearchPublicRegistries.jsp直接刪除就好了;

    方法二:

    1)刪除uddiexplorer文件夾

    2)限制uddiexplorer應用只能內網訪問

    方法三:(常用)

    Weblogic服務端請求偽造漏洞出現在uddi組件(所以安裝Weblogic時如果沒有選擇uddi組件那么就不會有該漏洞),更準確地說是uudi包實現包uddiexplorer.war下的SearchPublicRegistries.jsp。方法二采用的是改后輟的方式,修復步驟如下:

    1)將weblogic安裝目錄下的wlserver_10.3/server/lib/uddiexplorer.war做好備份

    2)將weblogic安裝目錄下的server/lib/uddiexplorer.war下載

    3)用winrar等工具打開uddiexplorer.war

    4)將其下的SearchPublicRegistries.jsp重命名為SearchPublicRegistries.jspx

    5)保存后上傳回服務端替換原先的uddiexplorer.war

    6)對于多臺主機組成的集群,針對每臺主機都要做這樣的操作

    7)由于每個server的tmp目錄下都有緩存所以修改后要徹底重啟weblogic(即停應用–停server–停控制臺–啟控制臺–啟server–啟應用)

    (三) 任意文件上傳

    1、 漏洞簡介及成因

    通過訪問config.do配置頁面,先更改Work Home工作目錄,用有效的已部署的Web應用目錄替換默認的存儲JKS Keystores文件的目錄,之后使用"添加Keystore設置"的功能,可上傳惡意的JSP腳本文件。

    2、 漏洞復現

    訪問http://192.168.139.129:7001/ws_utc/config.do。

    設置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。

    然后點擊安全 -> 增加,然后上傳 webshell ,這里我上傳一個 jsp 大馬。

    上傳后,查看返回的數據包,其中有時間戳:

    可以看到時間戳為1543145154632。

    訪問http://192.168.139.129:7001/ws_utc/css/config/keystore/1543145154632_lele.jsp。

    可以進行文件管理、文件上傳、系統命令執行等。

    嘗試以下執行系統命令。

    命令執行成功。

    3、 漏洞修復

    方案1:

    使用Oracle官方通告中的補丁鏈接:

    http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html

    https://support.oracle.com/rs?type=doc&id=2394520.1

    方案2:

    1)進入Weblogic Server管理控制臺;

    2)domain設置中,啟用”生產模式”。

    (四) war后門文件部署

    1、 漏洞簡介及成因

    由于WebLogic后臺存在弱口令,可直接登陸后臺上傳包含后門的war包。

    2、 漏洞復現

    訪問http://192.168.139.129:7001/console

    使用弱口令登陸至后臺。

    點擊鎖定并編輯。

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

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

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

    點擊激活更改。

    啟動上傳的 war 包所生成的服務。

    拿到 webshell。

    3、 漏洞修復

    防火墻設置端口過濾,也可以設置只允許訪問后臺的IP列表,避免后臺弱口令。

    七、 其它中間件相關漏洞

    (一) FastCGI未授權訪問、任意命令執行

    1、 漏洞簡介及成因

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

    2、 漏洞復現

    使用vulhub實驗環境,啟動實驗環境。

    在攻擊機使用命令python fpm.py 192.168.237.136 /etc/passwd,觀察返回結果。

    由于訪問非*.PHP文件,所以返回結果403。

    使用命令執行一個默認存在的 php 文件。

    python fpm.py 192.168.237.136 /usr/local/lib/php/PEAR.php

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

    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`; ?>’

    3、 漏洞修復

    更改默認端口

    (二) PHPCGI遠程代碼執行

    1、 漏洞簡介及成因

    在apache調用php解釋器解釋.php文件時,會將url參數傳我給php解釋器,如果在url后加傳命令行開關(例如-s、-d 、-c或-dauto_prepend_file%3d/etc/passwd±n)等參數時,會導致源代碼泄露和任意代碼執行。

    此漏洞影響php-5.3.12以前的版本,mod方式、fpm方式不受影響。

    2、 漏洞復現

    使用vulhub實驗環境,啟動環境。

    訪問http://192.168.139.129:8080/index.php。

    抓包,修改包。

    命令成功執行。

    3、 漏洞修復

    三種方法:

    1)升級php版本;(php-5.3.12以上版本);

    2)在apache上做文章,開啟url過濾,把危險的命令行參數給過濾掉,由于這種方法修補比較簡單,采用比較多吧。

    具體做法:

    修改http.conf文件,找到增加以下三行

    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/

    總結

    以上是生活随笔為你收集整理的常见web中间件及其漏洞概述的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。