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

CVE-2019-9081 Laravel v5.7反序列化RCE漏洞复现

0X1 漏洞概述 最近在复现一些AWD线下赛环境,恰好看见有大佬放出的QWB的一道关于Laravel v5.7的反序列化漏洞的利用过程文章。...Laravel v5.7是一款基于php 7.1.3之上运行的优秀php开发框架,5.7.x版本中的Illuminate组件存在反序列化漏洞。...PHP7.3,因为7.2编译过程没有使用OpenSSL,所以后续会报错,因此下载源码包安装了最新的PHP7.3,所以使用命令如下: #禁用Apache中的PHP7.2 sudo a2dismod php7.2...我们通过浏览器访问环境 http://172.16.1.137/laravel-5.7/public/index.php/index?code 其中code参数的值就是我们要传入的反序列化代码。...0X5 参考文章 https://xz.aliyun.com/t/5510 https://laworigin.github.io/2019/02/21/laravelv5-7%E5%8F%8D%E5%

4.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

Laravel5.2之Composer自动加载

如果仔细观察autoload_classmap.php、autoload_namespaces.php、autoload_psr4.phpautoload_files(这里用了Container包是没有这个文件的...autoload函数栈中,最后返回一个loader加载器,而这个加载器是包含一些私有变量的,由于本Container包只包含IlluminateContainerIlluminateContracts...,且都是psr-4规范,则私有变量prefixLengthsPsr4prefixDirsPsr4就包含了命名空间路径映射的数组值,其余私有变量就是空。...Container类的实例化过程 loader这个加载器已经有了,而且它还是塞满了各种私有变量,这些变量值为命名空间路径映射或者路径哈希映射等,当然这里只有命名空间路径映射这种psr-4规范了。...findFile(class)函数先做classmap查找,然后进入findFileWithExtension(class,'.php')中做psr-4/psr-0查找,其实就是搜寻这些私有变量值,比如这里

3.5K21

CTFshow刷题日记-WEB-反序列化(web254-278)PHP序列化漏洞、pop链构造、PHP框架反序列化漏洞、python反序列化漏洞

%22%3A2%3A%7Bs%3A8%3A%22username%22%3Bs%3A8%3A%22anything%22%3Bs%3A5%3A%22isVip%22%3Bb%3A1%3B%7D web257...> 加 '|' 是因为 session.serialize_handler 使用 php引擎 ,session 关联数组的 key value 是通过 '|' 区分的, value 是需要被反序列化的部分...,而是考察 php 按地址传参 小demo $a='123'; $b=&$a; $b=1; echo $a; a的值b的值一起发生改变,因为b变量引用了a变量的地址,两个变量引用的同一地址,所以值是相同的...反序列化漏洞 PHP/7.1.32框架审计Laravel 5.8反序列化漏洞 <?...web277 通过wappalyzer,可知题目使用了 flask 框架 关于 Python 反序列化可以看这篇文章,LINK1、LINK2,关于 Python 反序列化的做法真的很多, PHP

1.6K41

Laravel 5.0 之 Eloquent 属性转换

这意味着假如你的数据是以特定的格式存储在数据库中,而你在使用时需要的是另外一种格式,现在你可以配置 Eloquent 模型自动完成两种格式之间的转换工作。 为什么要这样做?...要应用属性转换这个功能,你需要在你的模型中添加一个 protected $casts 的数组变量。...这个数组变量 $casts 的作用就是告诉 Eloquent:“每次当我访问这个模型中的 is_admin 属性的时候,返回一个类型为 boolean 的值给我”。...float(real|double) Real, Float Double 在 PHP 中是同一种类型。 PHP 的 (double) (real) 类型转换都是 (float) 的别名。...都是用把序列化为 JSON 格式数组的数据转换(反序列化)并返回。

2.1K80

LaravelThinkphp有什么区别,哪个框架好用

LaravelThinkphp这两个php框架对于php程序员都不陌生,新手可能对Thinkphp比较熟,也是国内比较出名的开源框架,更高级的Laravel一般有点经验的才使用。...3、Laravel框架提供了大量的闭包 作为菜鸟的我目前只使用了use方法,即如何在函数内部使用外层变量。...如果没有则报语法错误,@foreach @endforeach同理;而TP框架则PHP语法规则使用方式一致,直接用if esle语句判断foreach循环遍历。...7、加密方式 在TP框架中,我们对用户名密码进行加密时使用md5();的方式进行加密。...本人在实际使用中也实实在在的感受到了通过创造模型对数据表操作带来的便利,譬如:批量赋值,跨表查询,删除模型软删除,模型关联,当然这些在TP框架中也可以利用模型实现。

5.9K20

laravel与thinkphp之间的区别与优缺点

3、Laravel框架提供了大量的闭包 作为菜鸟的我目前只使用了use方法,即如何在函数内部使用外层变量。...如果没有则报语法错误,@foreach @endforeach同理;而TP框架则PHP语法规则使用方式一致,直接用if esle语句判断foreach循环遍历。...7、加密方式 在TP框架中,我们对用户名密码进行加密时使用md5();的方式进行加密。...但是在Laravel里也可以直接使用php artisan make:model Models/GoodsModel -m 完成模型的创建和建表结构的创建(/database/migrations)。...本人在实际使用中也实实在在的感受到了通过创造模型对数据表操作带来的便利,譬如:批量赋值,跨表查询,删除模型软删除,模型关联,当然这些在TP框架中也可以利用模型实现。

5.5K20

Laravel框架关键技术解析

一、组件化开发与composer使用 A.组件化开发 B.composer使用 C.手动构建Laravel框架 1.index.php:自动加载函数的添加、服务容器实例化与服务注册、路由加载、请求实例化与路由分发...)即一个没有指定名称的函数,经常用做回调函数(callback)参数的值 2.匿名函数既可以作为参数传递给函数,也可以做为变量赋值,进而控制函数的执行过程;可以从父作用域中继承变量使用use关键字来继承...;默认PHP是通过复制的方式传入上层变量进入匿名函数,如果需要改变上层变量的值,需要通过引用的方式传递。...,用户构建应用的大部分工作都在这个目录下进行,包括路由文件、控制器文件、模型文件等 bootstrap:主要包含几个框架启动自动加载配置的文件 config:主要包含应用程序常用的配置文件信息 database...,通过序列化封装成json格式然后将其发送 2.消息处理 消息队列的执行流程,七个步骤:消息实例生成(工作生成)、消息队列实例生成(队列连接生成)、消息序列化封装、消息存储(消息推送)、消息获取(消息抛出

11.9K20

经验分享 | PHP-反序列化(超细的)

1.正文 常见的PHP魔术方法: __construct:在创建对象时候初始化对象,一般用于对变量赋初值。 __destruct:构造函数相反,当对象所在函数调用完毕后执行。...name age 进行序列化,必须返回一个数值 return array('name', 'age'); } } $a = new Test("Spaceman",566...> 运行结果: 666666 当在类外部使用unset()函数来删除私有成员时自动调用的 1 当在类外部使用unset()函数来删除私有成员时自动调用的 1 __INVOKE() __INVOKE()...属性 O%3A3%3A%22pop%22%3A3%3A%7Bs%3A3%3A%22Pub%22%3Bs%3A8%3A%22spaceman%22%3Bs%3A8%3A%22%00pop%00Pri%22%...__wakeup() 将在反序列化之后立即被调用 __get() 访问不存在的成员变量时调用的 __invoke() 将对象当作函数来使用时执行此方法 我们可以先一个一个类看看怎么利用 Modifier

2K20

Laravel 7.0中 timestamp 取出来的时间慢的8小时问题

: 'Y-m-d H:i:s'); } 其实Laravel 7.0升级说明中说了此问题:升级说明《Laravel 7 中文文档》(没有仔细看升级说明文档); 描述如下: 受影响可能性:高 在 Eloquent...模型使用 toArray 或 toJson 方法时,Laravel 7使用新的日期序列化格式。...为了格式化日期以进行序列化Laravel 将会使用 Carbon 的 toJSON 方法,该方法将生成与 ISO-8601 兼容的日期,包括时区信息及小数秒。...使用新格式进行序列化的日期将显示为:2020-03-04T20:01:00.283041Z 如果你希望继续保持之前所用的格式,你可以重写模型的 serializeDate 方法: /** * 为数组...: 'Y-m-d H:i:s'); } 该更改仅影响序列化为数组 JSON 的模型模型集合,对数据库中的日期没有影响。

1.5K10

浅谈PHP匿名函数闭包

概述 闭包匿名函数在PHP 5.3.0中引入,这两个特性非常有用,每个PHP开发者都应该掌握。 匿名函数其实就是没有名称的函数,匿名函数可以赋值给变量,还能像其他任何PHP函数对象那样传递。...我们通常把匿名函数当做函数或方法的回调使用,事实上,很多PHP函数都会用到匿名函数,比如array_mappreg_replace_callback,这是使用PHP匿名函数的绝佳时机。...在PHP中必须手动调用闭包对象的bindTo方法或使用use关键字把父作用域的变量及状态附加到PHP闭包中。...而从父作用域继承变量使用场景在Laravel底层源码中也是俯拾即是,比如Model.php(Illuminate\Database\Eloquent)的saveOrFail方法: 该方法的作用是使用事务将模型数据保存到数据库...这里bindTo方法的第二个参数显得尤为重要,其作用是指定绑定闭包的那个对象所属的PHP类,这样,闭包就可以在其他地方访问邦定闭包的对象中受保护私有的成员变量

97441

CVE-2021-3129:Laravel远程代码执行复现分析

0x02 漏洞概述 编号:CVE-2021-3129 当Laravel开启了Debug模式时,由于Laravel自带的Ignition 组件对file_get_contents()file_put_contents...()函数的不安全使用,攻击者可以通过发起恶意请求,构造恶意Log文件等方式触发Phar反序列化,最终造成远程代码执行。...二、清空laravel.log 作者在文章中提出了使用php://filter中的convert.base64-decode过滤器的特性,将log清空。.../storage/logs/laravel.log ? 五、触发phar反序列化 viewFile: phar://路径/storage/logs/laravel.log/test.txt ?...''并使用了file_get_contents()去读取了一个可控的路径参数,所以这里可以通过phar://协议去触发phar反序列化 既然路径可控,那么首先想到的就是log文件,虽然log不能直接被当做

4.2K10

Laravel 7发行说明

版本化方案 Laravel及官方发布的包皆遵循 语义版本化。主要框架版本每六个月发布一次 (~2月~8月),而次要和补丁版本可能每周发布一次。次要版本补丁 决不 包含非兼容性更改。...7 日 2018 年 87 日 2019 年 2 月 7 日 5.7 2018 年 9 月 4 日 2019 年 3 月 4 日 2019 年 9 月 4 日 5.8 2019 年 2 月 26...所有的公开属性方法都清晰地定义在组件类里,会自动组装成组件视图。任何附加的 HTML 属性都指定于一个可以被管理的自动包含$attribute 变量的组件,它是一个属性包的实例。...,Laravel 7 将自动确定查询范围,以使用约定猜测其父级上的关系名称,以其父级检索嵌套模型。...在先前版本的 Laravel 中, database 队列的健壮性被认为无法满足生产环境的需求。但是,Laravel 7 针对使用基于 MySQL 8+ 数据库队列的应用进行了改进。

9K20

Laravel源码解析之反射的使用

前言 PHP的反射类与实例化对象作用相反,实例化是调用封装类中的方法、成员,而反射类则是拆封类中的所有方法、成员变量,并包括私有方法等。就如“解刨”一样,我们可以调用任何关键字修饰的方法、成员。...当然在正常业务中是建议不使用,比较反射类已经摒弃了封装的概念。 本章讲解反射类的使用Laravel对反射的使用。...反射 反射类是PHP内部类,无需加载即可使用,你可以通过实例化 ReflectionClass类去使用它。...> 输出结果 bool(false) string(8) "stdClass" string(0) "" string(8) "stdClass" bool(true) string(7) "A\B\...Foo" string(3) "A\B" string(3) "Foo" Laravel Laravel在实现服务容器加载时使用了反射类。

67541
领券