小猿圈浅析web安全之序列化与反序列化漏洞

133 阅读2分钟

对于现在的互联网产品你了解多少?有没有想过自己有一天会被,自己的人身财产得不到保障,不过现在web安全推出以后得到了改善,今天小猿圈web安全老师就为大家分享web安全的一个知识点,希望对于你的学习有所帮助。


1.序列化简介

将原本的数据通过某种手段进行“压缩”,并且按照一定的格式存储的过程就可以称之为序列化。

如:通常情况下为了前后端之间的传输方便我们将其json_encode了,然后我们后端如果接受到这个json数据,还能在json_decode回来,再通俗一点就是tx目前不支持直接传输文件夹,我们必须要压缩一下然后传输,对方接收到需要解压才能看到你的数据。

1.1序列化与反序列化的区别

序列化就是将对象用字符串表示,反序列化就是将序列化字符串转换为对象。

注意:序列化的对象可以是class也可以是Array,string等其他对象。

2.PHP序列化

PHP的所谓的序列化也是一个将各种类型的数据,压缩并按照一定格式存储的过程,他所使用的函数是serialize()。

3.PHP序列化三种权限

序列化为了把这个类的信息完全压缩,自然把属性的权限考虑了进去。

将序列化的内容输入到txt文件里。

可以看到三个权限表示的方式是不一个样的。

flag作为私有属性,在其前面加了.类名.。

test作为保护属性,在其前面加了.*.。

而test1公有属性则,按照常规理解的方式。

所以总结如下:

在序列化的过程中:

私有属性:.类名.属性名

如:s:10:"testflag";

保护属性:.*.属性名

如:s:7:"*test";

公有属性:属性名

如:test1

4.序列化利用条件

根据上面的序列化输出:

在序列化数据中我们,无法还原类中具有的方法。

所以这就引出了序列化的两个条件。

1.当前所利用的作用域下面必须要有该类存在,该类中必须要含有unserialize()函数。

2.我们只能控制类中的属性来攻击。

因为没有序列化方法,我们能控制的只有类的属性,因此类属性就是我们唯一的攻击入口。

以上就是小猿圈web安全讲师对web安全之序列化与反序列化漏洞的简单介绍,通过以上的介绍你是否对web安全你有了一定的了解呢,是否有想过学习web安全呢?但是苦于自己没有合适的平台,那么久来小猿圈看看吧,里面有你需要的知识。