某不知名博客 某不知名博客
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Carsaid

安全界的小学生
首页
  • 《vulcat文档》
  • Web安全

    • 《BurpSuite及官方实验室》
    • 《OSWE学习历程》
  • 云原生安全

    • 《Docker命令大全》
    • 《CKS考试学习指南》
    • 《旧-Kubernetes教程》
漏洞库
  • 《渗透工具大全》
  • 《云安全》
事件库
关于
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 前言

  • 服务器端主题(翻译)

  • 客户端主题(翻译)

  • 高级主题(翻译)

  • 扩展阅读(翻译)

  • 个人学习笔记

  • 实验室做题记录

    • 实验室做题记录
    • 服务器端

    • 客户端

    • 高级主题

      • 不安全的反序列化

        • 学徒-修改序列化对象
        • 从业者-修改序列化数据类型
          • 题目
          • 实操
        • 从业者-使用应用程序功能
        • 从业者-PHP中的任意对象注入
        • 从业者-Apache Commons-Java反序列化
        • 从业者-预构建的小工具链-PHP反序列化
        • 从业者-收录在案的小工具链-Ruby反序列化
        • 专家-自定义小工具链-Java反序列化
        • 专家-自定义小工具链-PHP反序列化
        • 专家-自定义小工具链-PHAR反序列化
      • GraphQL API漏洞

      • 服务端模板注入

      • Web缓存投毒

      • HTTP主机头攻击

      • HTTP请求走私

      • OAuth身份验证漏洞

      • JWT攻击

      • 原型链污染

  • BurpSuite及官方实验室
  • 实验室做题记录
  • 高级主题
  • 不安全的反序列化
carsaid
2023-10-30
目录

从业者-修改序列化数据类型

# 实验室:修改序列化数据类型

# 题目

此实验室使用基于序列化的会话机制,因此容易受到 身份验证绕过 的攻击。若要解决该实验,请编辑会话 cookie 中的序列化对象以访问administrator帐户。然后,删除用户carlos。

你可以使用以下凭据登录到自己的帐户:wiener:peter

提示

要访问另一个用户的帐户,你需要利用 PHP 比较不同数据类型时的特性。

实验室-从业者

修改序列化数据类型 >>

- name: 实验室-从业者
  desc: 修改序列化数据类型 >>
  avatar: https://fastly.statically.io/gh/clincat/blog-imgs@main/vuepress/static/imgs/docs/burpsuite-learn/public/lab-logo.png
  link: https://portswigger.net/web-security/deserialization/exploiting/lab-deserialization-modifying-serialized-data-types
  bgColor: '#001350'
  textColor: '#4cc1ff'
1
2
3
4
5
6

# 实操

点击 “ACCESS THE LAB” 进入实验室。

Not Found Image

一个购物站点。

Not Found Image

使用题目中提供的用户名和密码进行登录。

Not Found Image

登录之后,通过 BurpSuite 捕获一个请求数据包,在 Cookie 中可以看到session字段,参数值为一段经过 Base64 编码的值。

Not Found Image

转到 BurpSuite 的 “Decoder” 功能模块,对 Cookie 依次进行 URL 解码和 Base64 解码,得到一个 PHP 序列化对象。

根据理论章节中所学的知识,本次的目标应该是access_token参数,我们需要修改它的数据类型。

O:4:"User":2:{s:8:"username";s:6:"wiener";s:12:"access_token";s:32:"z2z76l0vlaedj017ybwuycwlw7crz1uk";}
1
Not Found Image

我们需要运行 PHP 代码来生成序列化对象,如果你还没有搭建 PHP 运行环境,则可以使用 PHP在线工具 (opens new window)。

经过测试,序列化之后的 数值类型 用字符i来表示,并且没有长度。

Not Found Image

修改access_token的数据类型为数值i,删除中间的长度32,将值修改为0。

// 修改前
O:4:"User":2:{s:8:"username";s:6:"wiener";s:12:"access_token";s:32:"z2z76l0vlaedj017ybwuycwlw7crz1uk";}

// 修改后
O:4:"User":2:{s:8:"username";s:6:"wiener";s:12:"access_token";i:0;}
1
2
3
4
5

然后进行 Base64 和 URL 编码。

Tzo0OiJVc2VyIjoyOntzOjg6InVzZXJuYW1lIjtzOjY6IndpZW5lciI7czoxMjoiYWNjZXNzX3Rva2VuIjtpOjA7fQ==

Tzo0OiJVc2VyIjoyOntzOjg6InVzZXJuYW1lIjtzOjY6IndpZW5lciI7czoxMjoiYWNjZXNzX3Rva2VuIjtpOjA7fQ%3d%3d
1
2
3

覆盖原有 Cookie,然后刷新网页。

Not Found Image

刷新网页之后,当前登录的账户还是wiener,但发现右上角多了一个按钮 “Admin panel”,点击它。

Not Found Image

成功利用反序列化漏洞实现了 权限验证绕过。

点击 “Delete” 按钮删除 carlos 账户。

Not Found Image

删除成功,实验完成。

Not Found Image
编辑 (opens new window)
学徒-修改序列化对象
从业者-使用应用程序功能

← 学徒-修改序列化对象 从业者-使用应用程序功能→

最近更新
01
API测试笔记
04-30
02
msfvenom
03-29
03
Metasploit
03-29
更多文章>
Theme by Vdoing | Copyright © 2023-2024 Carsaid | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式