码迷,mamicode.com
首页 > Web开发 > 详细

thinkphp6.0反序列化利用链审计

时间:2020-05-19 01:05:47      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:serial   top   轻松   href   师傅   手动   gadget   pip   一起   

前言

这几天在忙实验室纳新,然后就是实验室准备创办公司,需要准备好多资料233截止到今天晚上终于把tp6的手册看完了,不得不说确实看一遍就有新的收获,上次看tp5手册遗漏了很多细节或者自己忘了233.看完手册就开始审计吧。
先上参考文章,大师傅就是大师傅啊。

https://www.anquanke.com/post/id/187393#h2-1

https://www.anquanke.com/post/id/194036

环境

tp6安装:

composer create-project topthink/think=6.0.x-dev v6.0

手动设置漏洞点:
别问为什么这样写。。这个反序列化漏洞想要触发就得有内容完全可控的反序列化点,例如:?unserialize(可控变量)。
得有程序员这样写才能触发。。

将?application/index/controller/Index.php?代码修改成如下:

<?php
namespace app\controller;

class Index
{
    public function index()
    {
        $u = unserialize($_GET[‘c‘]);
        return ‘ThinkPHP V6.x‘;
    }
}

反序列化利用链

根据师傅们的文章

在?ThinkPHP5.x?的POP链中,入口都是?think\process\pipes\Windows?类,通过该类触发任意类的?__toString?方法。但是?ThinkPHP6.x?的代码移除了?think\process\pipes\Windows?类,而POP链?__toString?之后的?Gadget?仍然存在,所以我们得继续寻找可以触发?__toString?方法的点。
这里5.2.x版本函数动态调用的反序列化链后半部分,还可以利用。
可惜我没审计过5.2x的tp链,不过看了一下和tp5.1的链子很像,松了一口气,不然我就是一起审计2个版本了。。

等把所有链子审完再写吧,写多少发多少,这样后续更新会轻松些--

thinkphp6.0反序列化利用链审计

标签:serial   top   轻松   href   师傅   手动   gadget   pip   一起   

原文地址:https://www.cnblogs.com/wangtanzhi/p/12913807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!