概述
文章目录
- 概念
- 相关函数
- 简单题目:
- 注意点:
- 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反序列化和魔术方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复