0x00 前言
本来是在刷 文件上传的题,然后没想到强网杯这个题打着upload 的幌子其实是个反序列化题,看了看wp 后,觉得很有意思,值得记录一下
0x01 题解
1.首先用户登录后的 cookie 是一串加密的内容,很可疑,base64 解密之后,发现是序列化的内容
2.dirmap 扫目录,扫到源码,/www.tar.gz
下载之后发现里面包含源码,以及.idea 文件,phpstorm 打开发现断点,估计是出题人故意留的提示
3.审计源码
先看两个断点处:
login_check() 函数会直接反序列化我们传入的$_COOKIE[‘user’]。
Register.php 中析构方法如果在未登录网站访问就会调用$->checker->index()。
在web/controller/Profile.php看到文件上传函数操作:
这段代码说明 如果直接上传的话,文件名后缀会直接被添加上png,这就导致即使上传成功php文件也是无法被解析的。但是如果我们直接通过GET 来发起请求,$_FILES 就必然为空,那么就可以绕过。
这里有个copy 的操作,也是本题的关键利用点,那么我们可以这样构造内属性:
public $hecker=