前言
web题大致看了一下,都没啥思路。。。。。麻蛋签到题也不会,但是这道题我是有思路的,套路跟以前做过的ctf题目类似,算是中规中矩的题目了。
分析
题目内容:
云平台消息中心,泄漏了不该泄漏的消息。导致系统可以被入侵。
既然是信息泄露,首先想到的是源码泄露。试了一下,发现是git目录泄露,那么利用工具直接把git目录下载下来(工具网上有但我是自己写的,有时间写一篇博客记录下)。
然后恢复所有删除的文件即可,使用如下命令:
git ls-files -d | xargs git checkout --
之后只用关注class.php,index2.php,waf.php
这三个文件即可。
//file: class.php
<?php
error_reporting(0);
class Record{
public $file="Welcome";
public function __construct($file)
{
$this->file = $file;
}
public function __wakeup()
{
$this->file = 'wakeup.txt';
}
public function __destruct()
{
if ($this->file != 'wakeup.txt' && $this->file != 'sleep.txt' && $this->file != 'Welcome') {
system("php ./import/$this->file.php");
}else{
echo "<?php Something destroyed ?>";
}
}
}
$b =new Record('Welcome');
unset($b);
?>
//file: index2.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="layui/css/layui.css" media="all">
<title>消息中心</title>
<meta charset="utf-8">
</head>
<body>
<ul class="layui-nav">
<