thinkphp5.0.24反序列化漏洞

开始搞起来(没写完

环境搭建

windows10 phpstudy php7.3.4

和平常一样 加上这个 .htaccess

1
2
3
4
5
6
7
8
9
<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
# RewriteRule ^(.*)$ index.php?s=$1 [QSA,PT,L]
</IfModule>

反序列化链分析

别的链子调用这里 以后抽时间看看

image-20220818165528934

start

跳板

image-20220818165846928

反序列化起点:thinkphp/library/think/process/pipes/Windows.php removeFiles方法

image-20220818170051513

可以调用 removeFiles() 方法

跟进一下

image-20220818170452960

file_exists方法能够触发__toString魔术方法

__toString() //把类当作字符串使用时触发

image-20220818170823882

然后继续跟进

跟进toJson方法至toArray方法

如下图Model抽象类toArray方法,存在三个地方可以执行__call

image-20220818171424647

reference

https://www.freebuf.com/articles/web/284091.html

ThinkPHP 5.2反序列化 - osword’s blog (zhzhdoai.github.io)