Java安全(十六) 一些题目之ljcrt

前言

师傅出的题真的很好,学到了什么叫“灵活处理”,以及在学习别人文章的时候要多思考(其实我是想到了能不能用反射的方法修改下值,但是一看见 new 了一个对象就觉得不行了,怎么没想到“修改源码”的方法呢)

回顾一下上篇文章的内容:

在这里插入图片描述

在这里插入图片描述

new 了一个 ReferenceIndirector 的对象,序列化的是该对象 indirectFrom 方法返回的对象:

在这里插入图片描述

在这里插入图片描述

所以之前说只有 var2 可控,但我们是不是忘了什么?

熟悉 PHP 反序列化的朋友知道序列化的数据其实重要的部分就是“属性值”,在 java 里应该就是师傅所说的修改字节码,我们可以不这么麻烦,完全可以仅修改 writeobject 方法就可以了。可以修改 C3P0 源码再重新生成 jar 包自己用(不太优雅,想想以前魔改 yso 也是这样的),然后就是师傅所说的利用 java agent 技术,算一次很好的再次实战,不了解的可以看看之前的文章:https://blog.csdn.net/WDWAGAAFGAGDADSA/article/details/122270281

复现

可以自己复制下师傅的 payload 生成 jar,也可以就用师傅的 jar 包

因为在 buu 上复现,所以稍微改一下:

然后点 project-structure -> artifacts -> add jar -> from moudule

可以把师傅原来里面的

在这里插入图片描述

提取出来添加到依赖中,再修改一下MANIFEST.MF文件即可

我就采用preagent的方法了,将方法修改为

在这里插入图片描述

在这里插入图片描述

运行时加上参数即可:

在这里插入图片描述

在pre和agentmain方法踩了许多坑(www):比如为什么pre在添加method方法体时一直报运行时错误,动态加载时一直是初始化失败,本人不才,解决不了,只有修改源代码这一条路了

把mchange-commons源代码下载后用IDEA打开,添加三个依赖,编译成jar包,注意java版本,不然可能会有奇奇怪怪的错误,然后把它添加到原项目中

在这里插入图片描述

在这里插入图片描述

然后记录一下一些命令

在这里插入图片描述

在这里插入图片描述

虽然最后还是没有复现成功,但学到了很多经验

打算后来学习一下JNDIExploit这工具的写法,因为复现不成功总是因为搭建恶意RMIServer没有反应(做题已经遇见好几次了)

还有个点是不论是agent方法还是修改源代码,应该都需要绕过一下ldap字符串的检测

参考

https://firebasky.github.io/2022/06/04/ljctr-wp/

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值