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

反序列化漏洞

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

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

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

例:

1.定义了一个Vul类:

<?php

class 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/)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Da1NtY0926

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值