对于现在的互联网产品你了解多少?有没有想过自己有一天会被黑客攻击,自己的人身财产得不到保障,不过现在web安全推出以后得到了改善,今天小猿圈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安全呢?但是苦于自己没有合适的平台,那么久来小猿圈看看吧,里面有你需要的知识。
网友评论