Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 渗透分析 › 深入浅出”P牛”版CC1链

深入浅出”P牛”版CC1链

Eswlnk的头像
Eswlnk
2022-03-27 22:32:25
深入浅出
智能摘要 AI
文章主要介绍了简化版的CC1链的分析过程。作者指出网上教程中的demo代码通常较为复杂且缺乏深度理解,不建议直接阅读ysoserial的源码。文中通过简化后的六行代码展示了如何利用Java反序列化漏洞执行系统命令(如启动计算器)。具体步骤包括使用`ConstantTransformer`获取`Runtime`对象,`InvokerTransformer`调用其`exec`方法执行命令,以及`ChainedTransformer`和`TransformedMap`的协同作用完成整个过程。最后强调可以通过调试进一步深入理解这一机制。

网上教程中的demo代码多半比较复杂,干扰要素较多,而且基本都来自于最初几个教程,很多写文章的人只是照着前人教程复现- -遍,其实不一定对此有深刻的理解。另外我也不建议直接读ysoserial的源码,因为ysoserial的源 码中对代码进行了很多优化,导致理解起来可能比较难一点.

0x01 前言

在p牛安全漫谈的第九篇中,p牛贴出了简化版的CC1链。为什么要有简化版呢?

0x02 简化版CC1链分析

        是不是看起来非常的简单,短短六行代码即可。

        Transformer[] transformers = new Transformer[]{
        new ConstantTransformer(Runtime.getRuntime()),
        new InvokerTransformer("exec", new Class[]{String.class}, new Object[]{"calc"})};
        Transformer transformer = new ChainedTransformer(transformers);
        Map innerMap = new HashMap();
        Map outerMap = TransformedMap.decorate(innerMap,null,transformer);
        outerMap.put("test","xxxxx");

       首先来分析ConstantTransformer,在进行初始化之后,就无其它操作了

new ConstantTransformer(Runtime.getRuntime())
深入浅出

InvokerTransformer初始化如下,1传递方法名,2传递参数类型,3传递参数的值

深入浅出

ChainedTransformer的实现如下:

深入浅出

也就说首先new之后transformer变量存储的内容如下

深入浅出

TransformedMap.decorate如下,这里可以看出直接能调用到有参构造。换种意思来说就是将transformer变量内容存入到了valueTransformer中.

深入浅出

那么最后一个outerMap.put(“test”,”xxxxx”);就是最重要的一点了。 跟进put发现了transformValue方法

深入浅出

transformValue会调用:valueTransformer.transform(object)

深入浅出

而valueTransformer此时为ChainedTransformer,所以会调用到ChainedTransformer.transform()方法

深入浅出
深入浅出

在第一次循环执行之后,返回的Object是Runtime

深入浅出

然后将object当做参数带入,再次执行transform(),一个经典的命令执行

深入浅出

0x04 结尾

本文只是简单剖析,更详细的话,可以跟着断点进行一步步调试

本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
CC1链P牛
1
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
记一次从简单的勒索软件中动态提取加密密钥
上一篇
详解泛型是如何让你的GO代码变慢
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 「漏洞资讯」CVE-2025-12914:宝塔面板曝出注入漏洞
  • 「渗透分析」如何防范JS注入?nbcio-boot代码审计攻略大公开
  • 「漏洞资讯」多用户管理系统API接口调用存在前台SQL注入漏洞(0day)
  • 「漏洞资讯」1Panel面板前台RCE漏洞(CVE-2024-39911)
  • 「高危漏洞」xz 和 liblzma 5.6.0~5.6.1 被植入后门,威胁所有 x64 架构 Linux 和 macOS 用户
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

[CVE-2022-34918]Linux 防火墙漏洞复现
2022-07-22 1:24:52
关于Spynote_v6.4/v6.5的话题
2021-07-14 12:57:35
「情报泄露」Oneinstack国内下载源遭到挂马 | 众站长需引起重视
2023-10-08 1:13:58

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.735 秒   |  SQL查询 52 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈