首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ThinkPHP 6.0.1 漏洞分析(任意文件操作)

0x00:漏洞描述 2020年1月10日,ThinkPHP团队发布一个补丁更新,修复了一处由不安全的SessionId导致的任意文件操作漏洞.该漏洞允许攻击者在目标环境启用session的条件下创建任意文件以及删除任意文件...,在特定情况下还可以getshell. 0x01:影响范围 ThinkPHP6.0.0-6.0.1 0x02:环境准备 1、/tp60/app/middleware.php 文件开启session...sid =$_POST['key']; session('zeo',$sid); return 666; } 意思是获取一个key设置写入session中 注:使用thinkphp6...最好使用高版本 的php 0x03:漏洞分析 首先这个洞,理解是sessionid为进行校验,可以导致传入任意字符,例如xxx.php.而且一般来说sessionid会作为文件名创建对应的文件保存....这是第一步我们的已经实现文件可控,如果session文件再往里面写东西要是可控的话,这样不就可以getshell了,所以我构造了上面的控制器.

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ThinkPHP文件上传

    在自己写的类中加入一个方法,下面我把我写的一个方法直接拿上来:     /*      * 文件上上传      * */     public function fileUpload(){...        $upload->maxSize = 3292200;         //设置上传文件类型         $fileType = array(             'jpg',...Public/Images/logo.png');             //$_POST['image'] = $uploadList[0]['savename'];             //将文件信息保存到文件表中...            */             //如果用的异步,则返回结果             $this->ajaxReturn($result);         }     }     如果在您的ThinkPHP...项目中有多处需要上传文件 ,那么在可以用这个方法为总入口,进行一个自定封装,其它地方可以传参数调用。

    3.2K100

    ThinkPHP之数据库操作

    数据库的操作是由模型来管理的,模型类的作用大多数情况是操作数据表的,如果按照系统的规范来命名模型类的话,大多数情况下是可以用模型的名字自动对应数据表的。...Model)(看得很懵逼对吧,我也是,上面这段话是百度的,下面实例化要好好看了) TP提供了快捷实例化模型的API,上面的直接实例化的时候我们需要传入完整的类名,系统提供了一个快捷方法D用于数据模型的实例化操作...('id'=>$map['id']))->find(); //array('id'=>$map['id'])等同于$map dump($data); find方法查询数据的时候可以配合相关的连贯操作方法...array('username'=>'benny','password'=>'123'); $data = $user->where(‘id =1 ’)->setField($data); 3、数据删除 ThinkPHP...,不会执行删除操作 (原文写于2017.8.16)

    96350

    ThinkPHP-文件下载和查看

    一、前言在 Web 应用程序中,文件下载和查看是非常常见的功能。在 ThinkPHP 框架中,我们可以很方便地实现这些功能,本文将介绍如何在 ThinkPHP 中实现文件下载和查看功能。...二、文件下载文件下载是指将服务器上的文件发送到客户端,供客户端用户下载和保存。...在 ThinkPHP 中,我们可以使用以下代码来实现文件下载功能:public function download(){ // 获取要下载的文件路径 $file_path = '....三、文件查看文件查看是指在浏览器中查看服务器上的文件,常见的文件类型包括图片、PDF 文件、文本文件等。...在 ThinkPHP 中,我们可以使用以下代码来实现文件查看功能:public function view(){ // 获取要查看的文件路径 $file_path = '.

    1.3K31

    ThinkPHP6.0学习笔记-模型操作

    ThinkPHP模型 模型定义 在app目录下创建Model目录,即可创建模型文件 定义一个和数据库表相匹配的模型 use think\Model; class User extends Model...(浪费资源),thinkphp支持自定义字段信息。...---- 最佳操作实践 新增操作: 新增数据的最佳实践原则:使用create静态方法新增数据,使用saveAll批量新增数。...saveAll方法新增数据默认会自动识别数据是需要新增还是更新操作,当数据中存在主键的时候认为是更新操作。...参照官方技术文档 ---- 模型自动时间戳 系统支持自动写入创建和更新的时间戳字段(默认会关闭),具体配置方法: 全局开启:在database.php文件中修改auto_timestamp为truely

    3.9K30

    thinkphp上传文件怎么修改大小

    摘要 本文介绍了如何在ThinkPHP框架中修改上传文件大小的方法。ThinkPHP是一款优秀的PHP开发框架,提供了丰富的扩展功能。...在开发过程中,文件上传是一个常见的需求,但默认情况下,ThinkPHP上传文件大小是受到限制的。...ThinkPHP是一款优秀的PHP开发框架,其提供了丰富的扩展功能,方便开发者快速完成各种需求。在开发过程中,文件上传是一个常见的需求。但是默认情况下,ThinkPHP上传文件大小是受到限制的。...那么,如何修改上传文件大小呢? 一、PHP.ini配置修改 首先需要注意的是,在 PHP.ini 文件中有上传文件大小的限制。因此,我们可以通过修改 PHP.ini 文件来实现上传文件大小的修改。...二、修改应用配置文件 修改 PHP.ini 文件是全局的,如果你只想修改某个应用中的上传文件大小,就需要修改 ThinkPHP 应用配置文件

    27010

    Thinkphp 框架扩展之类库扩展操作详解

    本文实例讲述了Thinkphp 框架扩展之类库扩展操作。分享给大家供大家参考,具体如下: 类库扩展 ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。...你可以在Org/Util/目录下面添加一个Image.class.php 文件,然后添加命名空间如下: namespace Org\Util; class Image { } 这样,就可以用下面的方式直接实例化...Rank类(位于Lib/Sina/Rank.class.php) namespace Lib\Sina; class Rank { } 如果你的类库没有采用命名空间的话,需要使用import方法先加载类库文件...\Admin\Api) namespace Admin\Api; use Think\Model; class UserApi extends Model{ } 记住一个原则,命名空间的路径和实际的文件路径对应的话...更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI

    54110

    【Python】文件操作 ① ( 文件编码 | 文件操作 | 打开文件 )

    是 将内容 转成 二进制数据 的规则 , 通过 该规则还可以将 二进制数据 转为 文件内容 ; 二、打开文件 在 Python 中 , 操作文件 的流程如下 : 打开文件 读写文件 关闭文件 1、open..., 可以包含目录名称和文件名称 ; mode 参数 : 文件访问模式 , 有如下访问模式 : 只读 : r 模式 , 以只读方式打开 , 文件指针在文件头位置 , 默认模式 ; 只写 : w..., 新内容会被写入到文件末尾 ; 如果文件不存在 , 则创建新文件写入 ; encoding 参数 : 编码格式 , 一般都设置为 UTF-8 ; 2、代码示例 - 使用 open 函数打开文件 代码示例...: """ 文件操作 代码示例 """ file = open("file.txt", "r", encoding="UTF-8") print(type(file)) # <class '_io.TextIOWrapper...参数并不是第三个参数 , 不能使用位置参数 , 必须使用关键字参数指定 ; 获取的 file 文件类型是 _io.TextIOWrapper , 借助该对象可以完成对文件操作 ; 上述代码执行结果 :

    26640
    领券