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

[渗透测试] 反序列化漏洞

反序列化漏洞

序列化:将对象的状态信息转换为可以传输或存储的形式的过程。简单的来说,就是将一个抽象的对象转换成可以传输的字符串 ,以特定的形式在进行之间实现跨平台的传输。

序列化大多以字节流、字符串、json串的形式来传输。将对象的某一状态写入永久或者临时存储区,在有需要的时候,就可以在存储区里读取对队形进行还原,也就是反序列化

1. 序列化与反序列化过程

例:

1.定义了一个Vul类:

<?phpclass Vul{public $str = "Dai";function __destruct(){@eval($this -> str);}
}
?>

test.php:

<?php
include "./vul.class.php";$s = new vul();
echo serialize($s);
echo "<hr />";$_s = $_GET['s_ser'];
$s = unserialize($_s);var_dump($s);?>

通过serialize( )$s 序列化,unserialize()用来反序列化

在这里插入图片描述

2. 漏洞成因

程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程有可能会被恶意利用,造成恶意代码的执行。

如在php中,__construct( ) 函数会在创建对象的时候自动调用。__destruct( )会在销毁对象时自动调用。在php中__开头的函数会被自动调用。

3. 漏洞复现

  1. java反序列化

    [CVE 2017-10271]weblogic < 10.3.6 ‘wls-wsat’ XMLDecoder 反序列化漏洞

    [CVE 2016-4437]Apache Shiro 1.2.4 反序列化漏洞

化漏洞](https://vulhub.org/#/environments/shiro/CVE-2016-4437/)

http://www.lryc.cn/news/406936.html

相关文章:

  • C++ 类型转换 包括C风格的转换、static_cast、const_cast、reinterpret_cast、dynamic_cast、模板特化等
  • 等保通过标准
  • reduceByKey 函数详解
  • CSI-RS在信道中传输的过程
  • 建造者模式(Builder Pattern)工作原理
  • Ubuntu22.04安装Go语言的几种方式
  • Typora笔记上传到CSDN
  • Modbus转BACnet/IP网关BA100-配硬件说明
  • DjangoRF实战-2-apps-users
  • java面试题,有synchronized锁,threadlocal、数据可以设置默认值、把redis中的json转为对象
  • Apache Spark:深度解析
  • 使用umi作为模板如何实现权限管理
  • 系统架构设计师教程 第4章 信息安全技术基础知识-4.1 信息安全基础知识-解读
  • 【Rust光年纪】探索Rust游戏开发世界:六款引人注目的游戏引擎与框架
  • 从数据时代到智能时代,星环科技信雅达联合发布金融全栈解决方案
  • 自定义维度映射:Kylin Cube设计的高级玩法
  • c17 新特性 字面量,变量,函数,隐藏转换等
  • git操作的一些备忘录
  • vscode回退不显示了,不方便操作
  • 常见的CSS属性(一)——字体、文本、边框、内边距、外边距、背景、行高、圆角、透明度、颜色值
  • react入门到实战-day2-7.21
  • Springboot集成Elasticsearch High Level REST Client实现增删改查实战
  • 2023河南萌新联赛第(二)场 南阳理工学院
  • 使用Docker Compose给自己上传的JAR打包成镜像并自动启动容器
  • NET8部署Kestrel服务HTTPS深入解读TLS协议之Certificate证书
  • DML数据库的数据类型
  • @RequestParam和@PathVariable 处理 HTTP 请求参数的注解
  • 《代码大全》读书笔记-第Ⅰ部分 奠定基础
  • 杰发科技Bootloader(1)—— Keil配置地址
  • 338. 比特位计数