我是靠谱客的博主 俊逸故事,最近开发中收集的这篇文章主要介绍PHP反序列化和魔术方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

    • 概念
    • 相关函数
    • 简单题目:
    • 注意点:
    • PHP反序列化 bug
    • PHP session 反序列化
    • phar反序列化:

概念

概念和开发一样
在这里插入图片描述

相关函数

在这里插入图片描述
在这里插入图片描述

这两个函数是特征之一;
序列化的含义:
在这里插入图片描述
o 是对象(数组反序列化的话 是 a)
4 是对象长度, 之后名字, 2 是变量个数,
s代表字符串, 3 代表个数,后面 也是 一样的。
在这里插入图片描述
反序列化过程中 ,可控点只有变量,函数 不可控。
局限性在于 其中的 function 函数。函数没有危害性的话 漏洞也没有,或者xss之类的。

配合魔术方法可以造成危害:
在这里插入图片描述
序列化的时候调用默认的方法:
在这里插入图片描述
关键在于下面这几个函数:
在这里插入图片描述

简单题目:

bugku的
题目:
在这里插入图片描述
hint。PHP 是这个文件 ,存在文件包含漏洞:在这里插入图片描述
所以包含hint进去:用PHP伪协议读取
在这里插入图片描述
解码:

所以自己序列化一下对象:获取 序列化之后的字符串。

在这里插入图片描述

题目中执行echo 之前 会执行tostring函数,

在这里插入图片描述

在这里插入图片描述
所以 通过 函数去 读取 flag。PHP
payload
在这里插入图片描述
在这里插入图片描述
用input协议
php://input 是个可以访问请求的原始数据的只读流。

php://filter 是一种元封装器, 设计用于数据流打开时的筛选过滤应用。类似 readfile()、 file() 和 file_get_contents(), 在数据流内容读取之前没有机会应用其他过滤器。
关于:
php://input,php://filter
我的理解是:两个协议都可以读文件而不执行,不过fitler 功能更多,可以编码和解码

注意点:

在这里插入图片描述

实战一个题目:(10:41秒 ~ )
在这里插入图片描述

在这里插入图片描述

如果在o:后面加上 +
在这里插入图片描述

因为+ 在url编码中 有其他作用,所以要把 + URL编码一下。
上图
能加+是因为 4 和+4 是一样的。
+4 可以绕过 正则。

PHP反序列化 bug

在这里插入图片描述
在这里插入图片描述
对应题目:
思路 是 直接修改o 后面代表 属性个数的数字即可。
注意 有时候要 base64 之后再传。

PHP session 反序列化

PHP bug:
在这里插入图片描述
eg:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

bug

在这里插入图片描述

在这里插入图片描述

session 安全问题:
在这里插入图片描述
实战:

安恒 题目:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

所以尝试去如下构造:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

phar反序列化:

在这里插入图片描述

看起来 无害的函数:
在这里插入图片描述
在这里插入图片描述
这些函数 都可以~~

最后

以上就是俊逸故事为你收集整理的PHP反序列化和魔术方法的全部内容,希望文章能够帮你解决PHP反序列化和魔术方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部