标签: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个版本了。。
等把所有链子审完再写吧,写多少发多少,这样后续更新会轻松些--
标签:serial top 轻松 href 师傅 手动 gadget pip 一起
原文地址:https://www.cnblogs.com/wangtanzhi/p/12913807.html