反序列化漏洞简单知识

目录:

一、概念:

二、反序列化漏洞原因

三、序列化漏洞的魔术方法:

四、反序列化漏洞防御:

一、概念:

序列化:

Web服务器将HttpSession对象保存到文件系统或数据库中,需要采用序列化的方式将HttpSession对象中的每个属性对象保存到文件系统或数据库中;

例子:

反序列化:

Web服务器将HttpSession对象从文件系统或数据库中装载如内存时,需要采用反序列化的方式,HttpSession对象中的每个属性对象。
PHP反序列化漏洞也叫PHP对象注入,是一个非常常见的漏洞,这种类型的漏洞虽然有些难以利用,但一旦利用成功就会造成非常危险的后果。

二、反序列化漏洞原因:

漏洞的形成的根本原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列不可控的后果。

漏洞原因:

漏洞的形成的根本原因是程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程可以被恶意控制,进而造成代码执行、getshell等一系列不可控的后果。
反序列化漏洞并不是PHP特有,也存在于Java、Python等语言之中,但其原理基本相通。

三、序列化漏洞的魔术方法:

以_开头的的方法,是PHP中的魔术方法,在特定情况下会被自动调用:

主要魔术方法及其触发条件如下:

_construct():构造方法,当---个对象被创建时调用此方法.

_destruct():析构方法,PHP将在对象被销毁前(即从内存中清除前)调用这个方法

_autoload():使用尚未被定义的类时自动调用。通过此函数,脚本引擎在PHP出错失败前有了最后一个机会加载所需的类。

_call( method, arg_array ):在对象中调用一个不可访问方法时

_callstatic():在静态上下文中调用一个不可访问的方法时使用

_clone():使用clone方法复制一个对象时

_invoke():当尝试调用函数的方式调用一个对象时-

__get( $property ):从不可访问的属性中读取数据

_set( Sproperty, Svalue ):给一个未定义的属性赋值时调用

_isset( Sproperty ):当在一个未定义的属性上调用isset()函数时调用此方法

_unset( $property ):当在一个未定义的属性上调用unset()函数时调用此方法

_tostring():在将一个对象转化成字符串时自动调用

_sleep():序列化对象前调用(其返回需要是---个数组),详见补充说明

_wakeup():反序列化恢复对象前调用,详见补充说明

set_state():当调用var_export()时,这个静态方法会被调用

_invoke():当尝试以调用函数的方式调用一个对象时,****_invoke方法会被自动调用

从序列化到反序列化这几个函数的执行过程是:

_construct()->_sleep()_wakeup()->_tostring()->_destruct()

四、反序列化漏洞防御:

1、严格控制unserialize函数的参数,坚持用户所输入的信息都是不可靠的原则;

2、对于unserialize后的变量内容进行检查,以确定内容没有被污染;

3、做好代码审计相关工作,提高开发人员的安全意识;

相关推荐
阿杰学AI1 小时前
AI核心知识38——大语言模型之Alignment(简洁且通俗易懂版)
人工智能·安全·ai·语言模型·aigc·ai对齐·alignment
cike_y2 小时前
浅谈用docker搭建一个ctf镜像
运维·安全·网络安全·docker·容器·ctf
white-persist4 小时前
【攻防世界】reverse | re1-100 详细题解 WP
c语言·开发语言·网络·汇编·python·算法·网络安全
牛分享4 小时前
frida安装
安全
普普通通的南瓜4 小时前
一年期免费IP证书,为公网IP地址提供HTTPS加密
网络·网络协议·tcp/ip·安全·http·金融·https
世界尽头与你5 小时前
CVE-2024-28188_ Jupyter Scheduler 安全漏洞
安全·网络安全·jupyter
云计算练习生6 小时前
渗透测试行业术语扫盲(第一篇)—— 基础网络与协议类术语
网络·网络协议·安全·网络安全·渗透测试·渗透测试术语
张3蜂6 小时前
文件上传漏洞:数字世界的“特洛伊木马”
网络·安全
普普通通的南瓜7 小时前
无需域名,直通安全:一年期免费IP SSL证书
网络·网络协议·tcp/ip·安全·ssl
别叫我->学废了->lol在线等7 小时前
python单例模式下线程安全优化
python·安全·单例模式