当前位置: 首页 > wzjs >正文

青岛网站建设eoe做游戏模型素材 网站

青岛网站建设eoe,做游戏模型素材 网站,wordpress主题 the7,域名申请到网站建设教程本文仅供网络学习,不得用于非法目的,否则后果自负 1、漏洞简介 fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,也可以从JSON字符串反序列化到JavaBean。即fastjson的主要功能就是将Java Bean序列化成JSON字符…

本文仅供网络学习,不得用于非法目的,否则后果自负

1、漏洞简介

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,也可以从JSON字符串反序列化到JavaBean。即fastjson的主要功能就是将Java Bean序列化成JSON字符串,这样得到字符串之后就可以通过数据库等方式进行持久化了

阿里巴巴公司开源Java开发组件Fastjson存在反序列化漏洞(CNVD-2022-40233)。攻击者可利用该漏洞实施任意文件写入、服务端请求伪造等攻击行为,造成服务器权限被窃取、敏感信息泄漏等严重影响

该漏洞影响fastjson 1.2.80及之前所有版本

2、漏洞原理

2.1 原理概述

2.2 fastjson

fastjson是alibaba的一款开源JSON解析库,可用于将Java对象转换为其JSON表示形式,也可以用于将JSON字符串转换为等效的java对象

2.3 Autotype

fastjson的主要功能就是将java Bean序列化成JSON字符串,这样得到字符串之后就可以通过数据库等方式进行持久化了,但是,fastjson在序列化以及反序列化的过程中并没有使用java自带的序列化机制,而是自定义了一套机制

对于JSON框架来说,想要把一个java对象转换成字符串,可以有两种选择:

1、基于属性

2、基于setter/getter

例如:

 

因为有了autoType功能,那么fastjson在对JSON字符串进行反序列化的时候,就会读取@type的内容,试图把JSON内容反序列化成这个对象,并且会调用这个类的setter方法。那么就可以利用这个特性,自己构造一个JSON字符串,并且使用@type指定一个自己想要使用的攻击类库

2.4 JNDI注入

JNDI注入和lookup函数

2.5 RMI

2.6 JdbcRowSetlmpl利用链分析

从java的函数文档可以查到DataSource是通过setDataSourceName来设置的,也就是datasource属性的set和get方法

所以这里就同时出现了get和set方法

2、找到调用了lookup方法的函数,下面进行分析那个函数能够触发lookup方法

(1)prepare()函数

这个函数的利用过程是execute()->prepare()->connect(),也就是得执行execute()方法才会执行到connect(),所以这个利用链使用的不是这个函数

(2)getDatabaseMetaData()函数

这个地方出现了connect函数,但是并没有set的方法,所以这个也不能成为利用链的一环

(3)setAuthCommit()函数

setAuthCommit()方法就使用了connect()函数,传值就是一个bool值,这个AuthCommit就既有set方法也有get方法

这个set方法很重要,只要能设置autoCommit就能调用set方法,而setAutoCommit()方法里面又调用了connect(),connect()里面就有我们需要的lookup(),从而构造整个的攻击链

2.7 JdbcRowSetlmpl利用

2.8 触发过程图

 

3、靶场模拟

3.1 实验环境

3.2 实验过程

docker拉取镜像

docker-compose up -d

启动环境并访问成功

 通过DNSLog.cn来获取一个子域名

然后构造POST请求的正文

当然这样做是不行的,因为我们没有去修改请求头

将content-type修改为application/json

表明这个请求正文是json格式,后台才会处理这个反序列化的过程

然后去DNSLog.cn去查看一下,说明其存在漏洞

就是我们让它给我们反序列化inet address,它确实进行了反序列化的操作,还给我们做了域名解析

我们还可以使用bp或者Fidder进行content-type的修改

通过抓取的数据包,然后进去里面的头信息进行修改,然后再发送,就能给出现和上面一样的效果,也就能说明其存在漏洞

既然存在漏洞了,那接下来就考虑该如何去利用这个漏洞了?

漏洞利用

(1)编辑恶意类,以反弹shell为例,我们将其反弹到公网服务器上的8086端口

编译成Exploit.class

 然后将这个Exploit.class文件放到Kali上去

然后在Kali上开启80服务

然后我们去看看能否访问,Kali的IP + 端口号,确实可以访问

开启一个LDAP服务器监听9999端口,远程加载Exploit类

使用marshalsec的目的是:帮我们做了一个中转,然后让其开启一个LDAP的服务

接下来我们使用Fidder进行操作

构造完成

意思就是让我们的目标主机进行反序列化的时候直接去调用远程的代码,就第二行(@type下面)

然后我们去公网服务器上开启监听

nc -lvp 8086

如果我们刚刚在Fidder上构造的请求发出去,然后公网服务器反弹成功,就说明我们的漏洞利用就已经完成了

然后点击execute,发送请求

反弹成功,也就是漏洞利用成功

确认一下,发现正确,是我们的docker环境

我们可以简单的对漏洞利用做一个总结:

第一台:我们搭建漏洞环境的主机,就叫Docker吧

第二台:kali,在这台主机里面做两件事情,第一件事情就是通过开放80端口来暴露我们Exploit这个恶意代码,另外一件事情就是开启我们的LDAP服务

第三台:公网服务器

第四台:我们的Windows主机

Windows访问我们的具有漏洞环境的主机,然后发送了一个JSON字符串,由于这个JSON字符串指定了@type,让这个目标主机(具有漏洞环境的主机)去远程调用LDAP服务的9999端口,然后这个LDAP服务器的9999端口就会给目标主机返回一个Exploit这个恶意代码,然后这个恶意代码就在目标主机上执行了,这个恶意代码里面让目标主机干的事情就是反弹到公网服务器

我们也可以去看一下它的内置的步骤

首先编译并上传命令执行代码,如http://evil.com/TouchFile.class:

然后将这个JAVA代码编译出来,编译成了Exploit.class

然后我们用这个新编译的文件进行一个替换,把之前编译好的文件替换了

然后在Kali开启80端口服务

然后我们启动marshalsec项目,启动一个RMI服务器,监听9999端口,并制定加载远程类TouchFile.class:

(我们使用jdk1.8的版本来开启rmi,不然版本太高不支持)

接下来就是发送请求进行调用

调用成功

可见,命令touch /tmp/success已成功执行:

(面试官如果问了不了解Fastjson,讲一下)

FastJson由于自定义了反序列化的机制,并且它的请求里面可以带上@type的方式,指定它反序列化哪个类,然后我们就可以利用lookup的函数来远程调用LDAP或RMI的远程方法,进而我们就能构造恶意代码在远程开起来,通过@type指定让fastJson反序列化哪个类,并且给这个类指定对应的属性,进而实现远程代码的调用,我们在攻击者主机上执行一个反弹shell的指令,然后就能把目标系统反弹到我们的攻击者主机上来了

 


文章转载自:

http://Jpsi5hU6.yxzfL.cn
http://AUDceedP.yxzfL.cn
http://fGiUXYEv.yxzfL.cn
http://cVmRppXo.yxzfL.cn
http://D0U3Xj7l.yxzfL.cn
http://0pT6MfJz.yxzfL.cn
http://zfo2C932.yxzfL.cn
http://6JU6Ormh.yxzfL.cn
http://IELoHn80.yxzfL.cn
http://Zr7EhNKH.yxzfL.cn
http://noPGKzTT.yxzfL.cn
http://0yEsFSz5.yxzfL.cn
http://8MiygiLj.yxzfL.cn
http://BPrAUtQU.yxzfL.cn
http://cyz62PZS.yxzfL.cn
http://ES8NsABP.yxzfL.cn
http://yHkNhCjv.yxzfL.cn
http://boCvTmDc.yxzfL.cn
http://AOlRKpAC.yxzfL.cn
http://R4urCtwL.yxzfL.cn
http://dzyLOo4w.yxzfL.cn
http://t5XXdOgR.yxzfL.cn
http://swywYo0n.yxzfL.cn
http://T1OFhHHO.yxzfL.cn
http://7OYc6DKE.yxzfL.cn
http://d3sWy5Qk.yxzfL.cn
http://ZcEcReWQ.yxzfL.cn
http://67UhKLwC.yxzfL.cn
http://hPGrYIe8.yxzfL.cn
http://fm57so6O.yxzfL.cn
http://www.dtcms.com/wzjs/777684.html

相关文章:

  • 药材网技术网站建设前端小说
  • 网站建设基本流程产品推广的网站怎么做
  • 网站开发移动端环保网站建设方案
  • 做赚钱的网站有哪些丹东手机网站
  • dede网站地图位置音乐网站开发与需求
  • 无限成都成都市广播电视台官方网站wordpress无法编辑
  • 买了个网站后怎么做下列哪个不是网络营销成熟阶段出现的网络营销方式
  • 网站建设单词长春网站建设吉网传媒实力牜
  • 用wordpress做外贸网站做淘宝网站的
  • 销售网站建设方案怎么注册国外域名
  • 网站建设需要什么样的内容网络营销师培训费用是多少
  • 国际网站建设与维护企业管理培训免费课程
  • wcm 可以做网站吗手机免制作app软件下载
  • html个人网站策划书网站开发还找到工作吗
  • 网站开发主菜单和子菜单东莞哪家公司做网站比较好
  • wordpress子页面怎么修改徐州关键字优化资讯
  • 网站建设问题整改报告wordpress 主题详情
  • 嘉兴seo网站建设费用信阳网站网站建设
  • 丹阳建设工程管理处网站台州网站公司那里好
  • 网站界面版式网站的建设好处
  • 网站内容图片怎么做安徽建设人才网官网
  • 北京网站建设那家好广州最新封闭封控区域
  • 大连高端网站建设深圳企业网站
  • 医疗网站建设及优化自己做动画的手机软件
  • 郑州企业网站优化排名营销技巧第一季
  • 做旅游的网站的要素wordpress界面菜单怎么弄
  • 做外国购物网站需要交税吗快速网站建设费用
  • ie10网站后台无法编辑wordpress怎么获取数据库名
  • 溧阳常州做网站苏州网站建设制作网络公司
  • 龙江网站设计旅游网站管理系统php