【BUUCTF】[极客大挑战 2019] PHP 清晰易懂详细总结 Writeup

本文详细解析了PHP反序列化过程中的安全漏洞,包括目录扫描、源码泄露及如何利用__wakeup()方法绕过安全检查获取flag。通过调整序列化字符串中的属性数量,成功跳过__wakeup()执行,最终实现对私有属性的访问。

0x00 考点

目录扫描

源码泄露

反序列化

0x01 解题

dirsearch

-u 指定url

-e 指定网站语言

-w 可以加上自己的字典(加上路径)

-r 递归跑(查到一个目录后,在目录后重复跑,很慢,不建议用)
python3 dirsearch.py -u http://26e0c1d7-d98e-4a34-9ffe-901887297fb5.node3.buuoj.cn/ -e php

在这里插入图片描述

御剑也行

在这里插入图片描述
不要扫太快
在这里插入图片描述

/www.zip

在这里插入图片描述
index.php
在这里插入图片描述

GET方式传入一个select参数,再反序列化

<?php
include 'class.php';
$select = $_GET['select'];
$res=unserialize(@$select);
?>

包含了flag.php,所以要先出入一个序列化的参数

class.php

<?php
include 'flag.php';


error_reporting(0);


class Name{
   
   
    private $username = 'nonono';
    private $password = 'yesyes';

    public function __construct($username,$password){
   
   
        $this->username = $username;
        $this->password = $password;
    }

    function __wakeup(){
   
   
        $this->username = 'guest';
    }

    function __destruct(){
   
   
        if ($this->password != 100) {
   
   
            echo "</br>NO!!!hacker!!!</br>";
            echo "You name is: ";
            echo $this->username;echo "</br>";
           
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值