安恒10月赛Web题目复现

前言

10月赛的时候去打那个瓜皮的领航杯(体验极差),还是回来复现安恒的题目比较好,质量还是有保证的,学到很多东西

正文

easy audit

这个题目确实有点脑洞。。运用了两个php函数一个是get_defined_functions这个函数是用于返回所有已定义函数的数组,而另外一个则是get_defined_vars 这个函数是返回由所有已定义变量所组成的数组
可以查看此网址:https://www.jb51.net/article/42890.htm

右键查看源代码发现存在index.php?func1,那么这个参数究竟有什么作用可以先尝试一下,上手就来一个phpinfo,发现直接有回显
iH0hd0.md.png
猜测是直接运行函数之类的功能,然后运用get_defined_functions获得全局的函数这里面的函数有内置的也有开发人员自己定义的函数,可以发现最后的这一个函数特别显眼,调用一下这个函数发现有源码出来
iH0TWF.md.png

<?php
//include 'real_flag.php';
function jam_source_ctf_flag(){
   
    echo file_get_contents('flag.php');
}

class jam_flag{
   
        public $a;
    function __construct(){
   
        $this->a = isset($_GET['a'])?$_GET['a']:'123';
    }
    function gen_str($m=6){
   
        $str = '';
        $str_list = 'abcdefghijklmnopqrstuvwxyz';
        for($i=0;$i<$m;$i++){
   
            $str .= $str_list[rand(0,strlen($str_list)-1)];
        }
        return $str;
    }
    function GiveYouTheFlag(){
   
        include 'real_flag.php';
        $secret = $this->gen_str();
        //echo $secret;
        if($secret === $this->a){
   
            echo $real_flag;//echo $flag
        }
    }
    function __invoke()
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值