thinkphp6.0漏洞复现

环境搭建

我打算安装在kali上面,首先下载tp6到kali上

// 1. 下载composer.phar:
 
curl -sS https://getcomposer.org/installer | php
 
// 2. 将 composer 命令移动到bin目录,使之全局可用
 
mv composer.phar /usr/local/bin/composer

// 3. 设置中国全量镜像,提升访问速度
 
composer config -g repo.packagist composer https://packagist.phpcomposer.com
 
// 如果上面错误存在问题,请使用这个镜像地址
 
composer config -g repo.packagist composer https://packagist.laravel-china.org

//安装thinkphp6.0

cd /var/www/html
sudo composer create-project topthink/think=6.0 tp

下载的时候遇到报错
在这里插入图片描述
解决方法:安装扩展依赖

sudo apt-get install php-mbstring
sudo apt-get install php-dom

安装成功

运行:

cd tp
php think run

在这里插入图片描述
运行在8000端口上,在浏览器上打开
在这里插入图片描述
版本为6.06,需要降低版本
在这里插入图片描述

编辑根目录下的composer.json
在这里插入图片描述

然后执行composer update,成功降级
在这里插入图片描述
ThinkPHP6默认不开启session,我们需要修改app\middleware.php文件

<?php
// 全局中间件定义文件
return [
    // 全局请求缓存
    // \think\middleware\CheckRequestCache::class,
    // 多语言加载
    // \think\middleware\LoadLangPack::class,
    // Session初始化
     \think\middleware\SessionInit::class
];

最后执行php think run即可

漏洞复现_任意文件写入

首先修改app/controller/index.php

<?php
namespace app\controller;

use app\BaseController;

class Index extends BaseController
{
    public function index()
    {
        $a = isset($_GET['a']) && !empty($_GET['a']) ? $_GET['a'] : '';
        $b = isset($_GET['b']) && !empty($_GET['b']) ? $_GET['b'] : '';
        session($a,$b);
        return '<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:) </h1><p> ThinkPHP V6<br/><span style="font-size:30px">13载初心不改 - 你值得信赖的PHP框架</span></p></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=64890268" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="eab4b9f840753f8e7"></think>';
    }

    public function hello($name = 'ThinkPHP6')
    {
        return 'hello,' . $name;
    }
}

开启session且写入的session可控

/tp6/app/middleware.php 文件开启session

去掉注释session的//
在这里插入图片描述
构造payload如下

在这里插入图片描述

访问http://192.168.8.8:8000/aaaaaaaaaaa.php
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值