Thinkphp5.1反序列化漏洞复现加代码调式

💡 原文中文,约800字,阅读约需2分钟。
📝

内容提要

本文讲述了代码调试环境中遇到的问题,需要注意composer和phpstrom版本对应,以及环境搭建。作者复现了应用入口反序列化接收,并跟进了removeFiles()和file_exists()等函数。最终进行了一系列传参,进行html输出。

🎯

关键要点

  • 代码调试环境中composer和phpstorm版本不匹配的问题。
  • 需要修改composer.json文件以确保版本一致。
  • 使用phpstudy搭建composer环境,未使用think run。
  • 成功搭建环境并访问,需自行查找composer安装方法。
  • 在packagist.org查找相应版本下载信息。
  • 复现应用入口反序列化接收的过程。
  • 使用hackbar进行发包调试。
  • 接受反序列化字符并触发析构函数。
  • 跟进removeFiles()和file_exists()函数的执行。
  • file_exists()将对象参数处理为字符,触发php的_Tostring()。
  • 跟进toJson和toArray方法的执行。
  • 在foreach遍历中,visible和hidden为空值,未进入if判断。
  • 调用getAtr和getData方法,构造前的值已准备好。
  • 最终进行一系列传参,输出html。
➡️

继续阅读