BUU CODE REVIEW

本文详细分析了一段PHP代码,涉及了代码审计的重点,包括如何利用MD5弱碰撞和PHP变量引用实现条件绕过。讨论了通过特定字符串的MD5值在PHP中的弱类型比较,以及如何构造payload使类变量相等以获取敏感信息。文章还提供了相关绕过MD5的资源链接和实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BUU CODE REVIEW

题目是简单的代码审计

 <?php
/**
 * Created by PhpStorm.
 * User: jinzhao
 * Date: 2019/10/6
 * Time: 8:04 PM
 */

highlight_file(__FILE__);

class BUU {
   public $correct = "";
   public $input = "";

   public function __destruct() {
       try {
           $this->correct = base64_encode(uniqid());
           if($this->correct === $this->input) {
               echo file_get_contents("/flag");
           }
       } catch (Exception $e) {
       }
   }
}

if($_GET['pleaseget'] === '1') {
    if($_POST['pleasepost'] === '2') {
        if(md5($_POST['md51']) == md5($_POST['md52']) && $_POST['md51'] != $_POST['md52']) {
            unserialize($_POST['obj']);
        }
    }
}

主要是考察绕过md5和php变量的引用。md5这个地方可以用md5弱碰撞,因为是弱类型比较。以下几个的md5弱类型比较均相等

    QNKCDZO
    240610708
    s878926199a
    s155964671a
    s214587387a
    s214587387a

这些字符串的 md5 值都是 0e 开头,在 php 弱类型比较中判断为相等
或者使用数组进行绕过,直接传入两个空数组即可
一些关于绕过md5的文章:

https://blog.youkuaiyun.com/优快云iamcoming/article/details/108837347

第二个点是如何让那两个类变量相等
在这里插入图片描述这里使用的是php的传引用,如下图
在这里插入图片描述所以我们可以使用下面的代码构造payload
在这里插入图片描述构造好后,传入对应的参数,即可拿到flag
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值