0x01 简介 ThinkPHP框架是MVC结构的开源PHP框架,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。该漏洞源于ThinkPHP 0x02 漏洞概述 2020年1月10日,ThinkPHP团队发布一个补丁更新,修复了一处由不安全的SessionId导致的任意文件操作漏洞。该漏洞允许攻击者在目标环境启用session的条件下创建任意文件以及删除任意文件,在特定情况下还可以getshell。 0x03 影响版本 ThinkPHP 6.0.0-6.0.1 0x04 环境搭建 利用PHPStudy对环境进行搭建 1.安装Composer 下载Composer-Setup.exe ,链接:https:///download/ 执行安装文件,选择php.exe位置,一路默认安装成功 composer拉取环境会卡住,换成国内镜像。 composer config -g repo.packagist composer https://packagist. 2.安装thinkphp TP6下载:https://github.com/top-think/think 下载后放到phpstudy的根目录即可 创新项目之前,先切换到web项目目录windows R 进入cmd命令窗口 composer create-project topthink/think tp6 (tp6自定义,这个会生成一个文件夹) 成功后配置php对应的环境变量(这个自行百度),注意php开启和配置的环境变量要对应且要php7.1以上,我这里用的是phpstudypro的最高版本php7.3 接着进入刚刚生成的tp6的目录,输入php think run, 默认运行在 接下来访问127.0.0.1:8000就可以看到搭建成功了 0x05 漏洞利用 在目标环境为Windows且开启session的情况下,容易遭受任意文件删除攻击。 在目标环境开启session且写入的session可控的情况下,容易遭受任意文件写入攻击。 修改/app/controller/Index.php 文件 session(‘demo’,$_GET[‘c’]); 修改 /app/middleware.php 文件如下 这里注意PHPSESSID的值一定要是32位(算上.php)这样才可以,接着再通过变量c传递任意代码。 可以看到文件在runtime\session下生成,内容并写入 |
|
来自: 小灰灰i58u7w06 > 《漏洞利用文章》