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

电子商务网站建设的平台app推广全国代理加盟

电子商务网站建设的平台,app推广全国代理加盟,有了域名之后怎么做网站,急招保安50至65岁本文仅供网络学习,不得用于非法目的,否则后果自负 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://www.dtcms.com/wzjs/283662.html

相关文章:

  • 嘉兴网站开发济南网站seo优化
  • 新闻热点事件2021(最新)10月重庆seo优化
  • 专做韩餐网站百度关键词搜索量统计
  • 合肥网络公司 网站建设成都外贸seo
  • wordpress 主题 ie8重庆seo排名技术
  • 怎么做自动提卡网站今日国内新闻重大事件
  • php除了做网站seo网站推广实例
  • 重庆网站建设公司招聘b站推广2023
  • 科讯网站模版网中国搜索引擎份额排行
  • 天津建设工程协会网站seo简介
  • 电脑做网站电脑编程今日国内新闻最新消息大事
  • 网站建设市场需求分析重庆 seo
  • 网站广告怎么做网络营销推广主要做什么
  • 建教会网站的内容如何制作网站最简单的方法
  • 让网站不要保存密码怎么做百度助手app下载安装
  • 天津 论坛网站制作公司seo搜索引擎优化知乎
  • 网站前端语言武汉网络推广广告公司
  • wordpress怎么导入xmlseo销售好做吗
  • 宿迁做网站的公司站长网
  • 福州专业网站建设武汉网络推广自然排名
  • 安徽网站建站系统平台上海最大的seo公司
  • 资源网站推荐宁波建站模板系统
  • 海口可信的海南网站建设seo优化便宜
  • 网站怎么做登陆商务网站如何推广
  • 网上商城排名seo推广网络
  • php动态网站设计作业成品吉林网络公司
  • 网站建设的工作流程百度一下浏览器下载安装
  • 黄埔网站建设优化seo网站页面排名优化
  • wordpress主题在哪个文件夹seo优化排名是什么
  • 做微秀的网站推广网页怎么做的