当前位置: 首页 > news >正文

IDEA断点调试

第一轮断点调试,先将main函数里面的进行分析,打上断点;

main函数

将主要的函数打上断点

先粗糙的看一下main函数里面的内容,明白每一句函数对链路有什么影响;

在33行的payload没运行时只有之前传入的cmd和key参数

可以看到这行在运行后出现了payload的值,过程相对复杂,后续在第二轮的断电分析里面来详细分析这里面的内容;

但现在要明白payload本质上是一个hashmap:里面只有一对键值对key=tiedmapentry;value=value。

其中的tiedmapentry是攻击的本质,value是占位子的;

接着往后运行

byte[] serialized = serialize(payload)

这一步本质来讲就是把对象之间的网络转化成二进制的字节流,也就让我能看到-84 -19 0 5开头的有java对象字节流特点的byte。

后调试c断点;

后进行AES加密,接着转化成base64编码的文本存入rememberme里面

调试断点D;

这个也就实现了AES解迷,后base64解码,恢复成了字节流,和上文的serlialized里面的值是一样的。

调试断点E也就实现了运行这个字节流,实现了触发calc.exe;

以上是第一轮断点调试,实现了模拟本地构造+服务器响应的全过程

第二轮断点来详细解释一下payload的函数逻辑。

先进行第一个函数;

将其中输入恶意类字节码,makeEvilBytecode是一段恶意代码,

其他的内容基本是凑数的

接着往transformer里面传内容,并且生成一个空的innermap

让后用lazymap里面传入innermap和transformer的内容

后生成一个tiedmapentry的内容,里面放了lazymap和templates的内容;同时66行生成一个空的expmap

后面的67行实现了添加一个键值对进入expmap

后面的lazymap.clear只去掉一个:innerMap 里的那条缓存tiedMapEntryexpMap都不受影响。

后面就把之前的getclass改成了newtransformer

这样在运行时就实现了服务端反序列化时lazyMap.get(templates)一落空,就会触发transform(templates),而那时方法名已经是newTransformer

先通过了L/M/N断点,然后到了ois.readobject的断点可以看得到里面的decrypted是base64的开头

后续运行到hashcode里面,第二次的thisthis.map来自readObject()按字节流重建——是一批新对象,内存地址完全不同,但字段内容(map 指向 LazyMap、key 指向 TemplatesImpl)和序列化前保存的一致。

现在进入了

if (!this.map.containsKey(key)) {

也是getvalue的里面的内容;后就进入这个后面的调用

算出map.containsKey(templates) = false(因为缓存被清空过);

走进factory.transform(key)→ 函数切换到InvokerTransformer.transform(Object input)(断点 N),input = TemplatesImpl

return之后就直接运行exe了

http://www.jsqmd.com/news/1397782/

相关文章:

  • Kimi LeetCode 3910. 统计节点和为偶数的连通子图 Rust实现
  • 2026上海黄金回收行情怎么看?大盘价解读+计价公式 - 日常前沿快讯
  • 电脑没插显示器就黑屏卡顿?用 ParsecVDD 免费造出 16 个虚拟显示器
  • MySQL数据覆盖导入实战:从备份恢复到环境同步的4种核心方案
  • QQ空间说说备份:用 GetQzonehistory 把多年历史记录完整导出到本地
  • 前端实战:从零实现可交互的竖直滑块组件
  • 2026佛山顺德买家具全攻略:6大避坑指南与10家靠谱源头工厂推荐 - 米諾
  • diff-pdf 使用教程:5 分钟快速掌握 PDF 对比,让 PDF 差异比较不再靠肉眼
  • 深入理解 amdgpu SDMA 引擎专栏目录
  • 石家庄买金条去哪?合扬门店金条规格与选购指南 - 拾闻观天地
  • RA-FinBERT:融合领域规则的低资源金融文本情感分类方案
  • C语言位移运算:从基础概念到嵌入式实战应用
  • 多智能体系统一致性控制与Matlab仿真实践
  • 适用于 React 的最佳代码编辑器组件
  • 比亚迪 HyWorldVLA 深度解析:像素级、隐空间、混合三类世界模型原理、架构与落地实战
  • 无货源电商如何实现自动履约?抖音全域适配一键下单工具原理拆解 - 抖掌柜一键下单
  • 从上下文管理到Runtime操作系统:构建高效LLM应用的新范式
  • 标书编制如何借助 AI Agent 落地?哪些云上智能投标工具适配企业规模化应用?:优先评估亚马逊云科技的全流程智能投标方案
  • 从CTF实战看密钥安全:Diffie-Hellman弱随机数漏洞分析与防御
  • K3s 双节点集群部署
  • 空调维修平台哪家收费合理?2026 年上门服务避坑指南与深度体验评测 - 新闻快传
  • 抖音无水印下载工具怎么选?开源神器 douyin-downloader 实测全攻略
  • 2026内蒙古旅游预约攻略|认准正规持证导游,开启满分草原度假 - 纯玩旅游分享
  • ArcGIS Pro擦除工具:空间差集运算原理、应用与自动化实践
  • PS切片工具全解析:从精准切图到高效交付的完整工作流
  • Bun 深度解析:从 Node.js 痛点出发,看现代 JavaScript 工具链的演进与实战
  • exgcd
  • 《天道》5
  • 从「加速」到「加崩」:Cython手写布尔数组扩展差点把我整破防
  • OpenCore Legacy Patcher 新手完整指南:旧 Mac 免费升级 macOS 的每一步