web安全之反序列化漏洞

一、基本概念

什么是序列化

序列化:将对象转化为字符串的过程,便于存储或传输。  类似vm做快照。

什么是反序列化

反序列化:将字符串转化为对象的过程,便于调用。     类似vm恢复快照。

编程基础:

class 属性、方法      例:car

object  属性、方法       例:BMW

redis常用来缓存序列化之后的字符串。

redis类似字典的键值对格式。MySQL表类似excel格式。

跨平台传输标准:JSON/XML

JSON格式:轻量级的数据交换格式。类似字典格式的字符串。

二、反序列化漏洞

PHP反序列化漏洞

原理:又称PHP对象注入。程序没有对用户输入的反序列化字符串进行检测,导致反序列化过程被恶意控制,进而导致代码执行、getshell等。PHP序列化函数serialize()、反序列化函数unserialize()。同时需要理解,为什么phpinfo()被成功执行?因为类中的魔术方法在特殊情况下被自动调用,并输出字符串[This is function ____destruct()]。

利用:Typecho cms_exp——getshell

 

posted @ 2023-05-25 16:08  dustfree  阅读(48)  评论(0编辑  收藏  举报