随笔分类 - 不安全的反序列化
摘要:题目 拿到题目 分析 第一个绕过 if(isset($text)&&(file_get_contents($text,'r') "welcome to the zjctf")) file_get_contents($text,'r')是读取文件的内容,说明我们首先要上传一个文件,并且它的内容还得是"
阅读全文
摘要:本题是某信有一次内部比赛的题目,涉及到pop链的构造问题,所以在这里与大家分享一下 题目 查看源码 逻辑是当参数fn存在且不包含string、zlib、flag这三个字符串时,进行文件包含这里的过滤是为了防止我们直接读取到flag.php的源码,因为毕竟题名是反序列化如果不存在fn,对code进行反
阅读全文
摘要:那次某信内部比赛中有道pop链问题的题目,我当时没有做出来,所以在此总结一下,本次以buu上复现的[MRCTF2020]Ezpop为例。 题目 1 Welcome to index.php 2 <?php 3 //flag is in flag.php 4 //WTF IS THIS? 5 //Le
阅读全文
摘要:我们一般利用反序列漏洞,一般都是借助unserialize()函数,不过随着人们安全的意识的提高这种漏洞利用越来越来难了,但是在今年8月份的Blackhat2018大会上,来自Secarma的安全研究员Sam Thomas讲述了一种攻击PHP应用的新方式,利用这种方法可以在不使用unserializ
阅读全文
摘要:1.POP链原理简介: 在反序列化中,我们能控制的数据就是对象中的属性值,所以在PHP反序列化中有一种 漏洞利用方法叫"面向属性编程",即POP( Property Oriented Programming)。 在反序列化漏洞利用中,最理想的情况就是漏洞能利用的点在那几个魔幻函数中, 而实际上往往是
阅读全文
摘要:一道浙大的题目 题目地址:http://web.jarvisoj.com:32784 拿到这道题目, 是一道反序列化的题目,题目源码很简单,当创建OowoO()这个类的对象时,会自动调用__construct()这个魔术方法,给mdzz这个变量赋值为"phpinfo();",然后程序执行结束后会自动
阅读全文
摘要:拿到题目,是个这, 我们来一波代码审计 1 <?php 2 class Demo { 3 private $file = 'index.php'; 4 public function __construct($file) { 5 $this->file = $file; //构造函数,对类的变量进行
阅读全文
摘要:跳过_wakeup()魔法函数__wakeup(): 将在序列化之后立即被调用漏洞原理: 当反序列化字符串中,表示属性个数的值大于其真实值,则跳过__wakeup()执行 对于该题,先可以看到类xctf中有flag变量,并调用了__wakeup(),则考虑实例化xctf类并将其变量序列化。并猜测意图
阅读全文
摘要:先来了解一下关于session的一些基础知识 什么是session?在计算机中,尤其是在网络应用中,称为“会话控制”。Session 对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象中的变量将不会丢失,而是在整个用户会话中一直存在
阅读全文
摘要:0x00 前言 最近也是在复习之前学过的内容,感觉对PHP反序列化的理解更加深了,所以在此总结一下 0x01 serialize()函数 “所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存
阅读全文