(38)【JAVA反序列化漏洞】简介、原理、工具、环境、靶场、思路
目录
一、简介:
二、原理:
2.1、Java对象:
2.2、Java 序列化:
2.3、Java 反序列化:
三、函数:
四、工具:
4.1、ysoserial 0.0.4版
4.2、 payload生成器
4.2.1、介绍:
4.3、提示:
五、准备:
5.1、WebGoat
5.2、 环境变量的配置:
5.2.1、方法一:手工配置
5.2.2、方法二:工具配置
5.2.3、JDK的配置:
5.2.4、JRE的生成:
5.3、错误+安装
六、WebGoat
6.1、分析:
6.2、插件
6.2.1、Java Deserialization Scanner
6.3、漏洞利用:
6.3.1、大体思路:
6.3.2、具体思路
(大家都在学习)
一、简介:
序列化也就是将数据拆成一小块小块保存到文件中(每块设置编号),反序列化就是重现组合起来
(1)序列化就是将数据转化成一种可逆的字符串(利于存储或者传输),字符串还原原来结构的过程叫做反序列化
(2)序列化后,方便保存和传输(保留成员变量,不保留函数方法)
(3)数据(对象)--------序列化---------->字符串-----------反序列化-------->数据(对象)
二、原理:
2.1、Java对象:
①多种方式来创建对象,没被回收都可复用此对象(存在于JVM中的堆heap内存中),当JVM处于运行状态,对象就存在;反之,对象就不存在。
②在真实的环境中,通过序列化,实现在JVM中的对象和字节数组流之间转换,实现将这些对象持久化保存下来,在需要的时候再使用。
2.2、Java 序列化:
完整性+可传递性
①将对象转换为字符串等字节数组流过程(保存属性状态,不保存对象中的方法),从而实现对象持久化,以便传输(可移植性)或保存在本地文件中,将序列化对象写入文件之后,可从文件中读取,并且进行反序列化。
2.3、Java 反序列化:
将一个对象的字节序列(字符串)中保存的对象状态及描述信息,通过反序列化,恢复成 Java 对象的过程(重建)
三、函数:
序列化:ObjectOutputStream类–> writeObject()(写入)
反序列化:ObjectInputStream类 -->readObject() (读取)
Serializable(接口) :(序列化与反序列化的类必须使用)一个标志性接口,标识在 JVM 中进行序列化,为该类自动生成一个序列化版本号。
serialVersionUID(类属性):序列化版本号(默认提供),给 JVM 区别同名类。
transient(关键字):不希望特定属性参与序列化,使用这个关键字标注该属性。
四、工具:
4.1、ysoserial 0.0.4版
(现在最新的是0.0.6)
链接:https://pan.baidu.com/s/18q2ruwCFGI1vMvl9j7lT3w?pwd=hj12
提取码:hj12
4.2、 payload生成器
angelwhu/ysoserial: A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization. (github.com)https://github.com/angelwhu/ysoserial
frohoff/ysoserial: A proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization. (github.com)https://github.com/frohoff/ysoserial
4.2.1、介绍:
ysoserial payload是创建了一个URLStreamHandler的子类:SilentURLStreamHandler
SilentURLStreamHandler重写了getHostAddress(URL u),屏蔽了返回值,因此在生成payload的时候、也就是序列化的时候,不会触发dns查询。
4.3、提示:
上上述文件需要经过Maven编译,或者Gradle编译(Gradle更简单,以后应该会超过Maven)成.jar文件,后才能使用
【Maven使用】IDEA使用Maven进行文件打包+命令含义+错误分析https://blog.csdn.net/qq_53079406/article/details/124322125?spm=1001.2014.3001.5501
【Gradle】问题解析+下载安装+环境配置+验证安装https://blog.csdn.net/qq_53079406/article/details/124312186?spm=1001.2014.3001.5502
IntelliJ IDEA中也包含Maven、Gradle
(里面也可以配置自己的maven、Gradle)
官网:
IntelliJ IDEA:JetBrains 功能强大、符合人体工程学的 Java IDEhttps://www.jetbrains.com/zh-cn/idea/
激活:
网上有很多激活脚本(容易找到)
五、准备:
5.1、WebGoat
链接:https://github.com/WebGoat/WebGoat/releases
5.2、 环境变量的配置:
5.2.1、方法一:手工配置
3分钟复制粘贴配置java环境变量,验证配置是否成功,java文件运行方法https://blog.csdn.net/qq_53079406/article/details/123482726?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165028109016780261979271%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=165028109016780261979271&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-4-123482726.nonecase&utm_term=jdk&spm=1018.2226.3001.4450
5.2.2、方法二:工具配置
【jdk快速设置/切换工具】一键设置/切换、附带插件链接、使用教程https://blog.csdn.net/qq_53079406/article/details/124252949?spm=1001.2014.3001.5501
5.2.3、JDK的配置:
【jdk快速设置/切换工具】一键设置/切换、附带插件链接、使用教程https://blog.csdn.net/qq_53079406/article/details/124252949?spm=1001.2014.3001.5501
5.2.4、JRE的生成:
【高版本JRE生成】JRE版本不够,生成JRE失败,高版本JDK生成JRE过程https://blog.csdn.net/qq_53079406/article/details/124262183?spm=1001.2014.3001.5501
5.3、错误+安装
全面的错误解决
【WebGoat安装错误合集】WebGoat8.2.2每一步出现的错误整理,最后附带正确的安装教程https://blog.csdn.net/qq_53079406/article/details/124297362?spm=1001.2014.3001.5501
六、WebGoat
6.1、分析:
下面的输入框存在反序列化的漏洞,我们要生成含有可执行代码的序列化字符串,在输入框提交,进行反序列化,从而执行我们构造的代码,让页面延迟5s就完成题目了
以 rO0AB 开头, JAVA 序列化 base64 加密的。
以 aced 开头, java 序列化的 16 进制。
解码看看
无任何有用信息
6.2、插件
6.2.1、Java Deserialization Scanner
是一个Burp套件插件,用于检测和利用Java Deserialization(java反序列化)漏洞
【JAVA反序列扫描工具】简介、下载、安装、使用https://blog.csdn.net/qq_53079406/article/details/124336323?spm=1001.2014.3001.5501这个工具的扫描,也得依靠我们对他进行配置文件ysoserial.jar
6.3、漏洞利用:
(由于僵持了好多天,我要去补充亿多点知识点去了,先把思路放这里)
6.3.1、大体思路:
构造恶意语句----->序列化------>进行编码------>最终的payload------>提交进去执行
6.3.2、具体思路
(前提:知道源码)
第一步:
提交,抓包,找到数据包中包含的目录(可能是发往反序列化函数的地方)
第二步:
在源码里搜索,找到反序列化的位置
第三步:
分析解码函数(即它的编码方法)及其接口
第四步:
查看ysoserial支持的插件,对应查找WebGoat是否安装了对应的.jar包(名含有core,与ysoserial支持的版本一致),并复制到ysoserial目录下
第五步:
根据这个.jar包,利用ysoserial生成反序列化漏洞的payload,执行calc.exe,将payload保存在token.bin文件中
第六步:
采用python脚本对payload进行base64编码(根据所使用的序列化编码方法)
第七步:
在反序列化框提交构造的序列化字符串(触发反序列化)
(前提:不知道源码)
可以就要通过其他方法去分析到编码方式、含有的.jar包
接口测试、回显数据分析……
(38)【JAVA反序列化漏洞】简介、原理、工具、环境、靶场、思路相关推荐
- java 反序列化漏洞简介
目录 一.Java的序列化与反序列化 二.对java序列化的理解 三.反序列化的漏洞原理概述 四.关于反射链 一.Java的序列化与反序列化 在这里我们直接自己定义一个类,然后对这个类的对象(一个实例 ...
- Java反序列化漏洞通用利用分析
2015年11月6日,FoxGlove Security安全团队的@breenmachine 发布的一篇博客[3]中介绍了如何利用Java反序列化漏洞,来攻击最新版的WebLogic.WebSpher ...
- 带你掌握java反序列化漏洞及其检测
摘要:在本文中将先介绍java反序列化漏洞的原理,然后在此基础上介绍安全工具如何检测.扫描此类漏洞. 本文分享自华为云社区<java反序列化漏洞及其检测>,作者: alpha1e0. 1 ...
- Lib之过?Java反序列化漏洞通用利用分析
1 背景 2015年11月6日,FoxGlove Security安全团队的@breenmachine 发布的一篇博客[3]中介绍了如何利用Java反序列化漏洞,来***最新版的WebLogic.We ...
- java序列化_技术干货 | JAVA反序列化漏洞
目录 反序列化漏洞 序列化和反序列化 JAVA WEB中的序列化和反序列化 对象序列化和反序列范例 JAVA中执行系统命令 重写readObject()方法 Apache Commons Collec ...
- java反序列化漏洞 poc_Java反序列化漏洞详解
Java反序列化漏洞从爆出到现在快2个月了,已有白帽子实现了jenkins,weblogic,jboss等的代码执行利用工具.本文对于Java反序列化的漏洞简述后,并对于Java反序列化的Poc进行详 ...
- java反序列化漏洞分析
Java反序列化漏洞(Java Deserialization Vulnerabilities)是一种常见的安全漏洞,其攻击方式是利用Java中的序列化和反序列化机制,通过在序列化数据中插入恶意代码, ...
- shiro反序列化漏洞学习(工具+原理+复现)
工具准备 1.java8 C:\Program Files\Java 2.冰蝎 C:\Users\ali\Desktop\tools\Behinder_v4.0.6 3.shiro反序列化 图形化工具 ...
- java反序列化漏洞POP查找_利用 Java 反序列化漏洞在受限环境下获取反向 Shell
原标题:利用 Java 反序列化漏洞在受限环境下获取反向 Shell 原文链接: https://medium.com/abn-amro-red-team/java-deserialization-f ...
- java 反序列化漏洞 利用思路简介
目录 序列化的过程 readObject方法 反射链 完成反序列漏洞实践 结论 之前听别人讲解反序列化的漏洞听的晕乎乎的,刚脆就趁着周末研究一下反序列化漏洞,并且搭建实战环境实际操作了一把,明白了之后 ...
最新文章
- 整理一套pandas详细教程,希望对你有帮助!
- 云信小课堂|5分钟快速实现安卓端PK连麦场景
- 心得 : 面向对象和面向过程的区别【分享】
- xshell连接kali时vim无法粘贴解决方法
- 多头注意力代码解读(非常好的一个版本)
- HashMap的五种遍历方法
- linux下nginx重启命令
- 北大 CTSC 2013
- 推荐几款流行的开源报表工具
- 计算机网络未识别网络,电脑网络出现未识别的网络,无Internet访问的解决办法...
- Android 项目实战视频资料 学习充电必备
- mysql interval啥意思_MySQL interval()函数
- 植物大战僵尸修改游戏存档
- javascript实现九九乘法表(四种形式)
- matlab 文件操作 写入换行
- 服装ERP应用 四 从手工到Web 2 0时代的VIP客户管理
- linux设置为adhoc模式,Linux下两台笔记本电脑adhoc模式搭建局域网跟adhoc无线自组织网络...
- [非原子批处理出现故障]使用 getNextException() 来检索已经过批处理的特定元素的异常。 ERRORCODE=-4228, SQLSTATE=null
- 凤凰大视野----冷暖人生: 记录平凡人的普通人生
- 高物实验报告计算机模拟高分子,高分子物理与化学国家重点实验室-苏州大学学术交流报告会举行...