安恒的一次月赛

easy-安恒12月月赛

打开页面出现代码,unserialize,需要反序列化,正则筛选值preg_match('/[oc]:\d+:/i',$data,$matches);发现过滤了O:4这类值,用O:+4可以过滤.
正常反序列化 O:4:“baby”:1:{s:4:“file”;s:8:“flag.php”;}会被过滤
所以用O:+4:“baby”:1:{s:4:“file”;s:8:“flag.php”;} 绕过正则.
得到flag{ad2328a2c3f0933c053fd3c6f28f6143}.

<?php  
@error_reporting(1); 
include 'flag.php';
class baby 
{   
    public $file;
    function __toString()      
    {          
        if(isset($this->file)) 
        {
            $filename = "./{$this->file}";        
            if (file_get_contents($filename))         
            {              
                return file_get_contents($filename); 
            } 
        }     
    }  
}  
if (isset($_GET['data']))  
{ 
    $data = $_GET['data'];
    preg_match('/[oc]:\d+:/i',$data,$matches);
    if(count($matches))
    {
        die('Hacker!');
    }
    else
    {
        $good = unserialize($data);
        echo $good;
    }     
} 
else 
{ 
    highlight_file("./index.php"); 
} 
?>

ezweb2-安恒12月月赛

扫目录,扫到了admin.php,页面提示,you are not admin,想到了改cookie
发现cookie里面有user,将其解码是base64加密,所以把admin用base64加密,进入了后台管理系统,发现是个任意漏洞命令执行.ls能执行,又试了下ls /报错了,后面发现空格被过滤了.百度了下发现$IFS能够绕过.

在这里插入图片描述
发现了ffLAG_404,打开获得了flag
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值