foundation

Laravel v5.8 反序列化rce (CVE-2019-9081) 复现

与世无争的帅哥 提交于 2020-02-22 04:52:11
序 Laravel是一款比较流行的优秀php开发框架,本身也比较重,通过这个框架来接触大型框架的代码审计、包括锻炼反序列化漏洞的挖掘利用是比较合适的。在学习了几天Laravel开发以后,我尝试复现了一下CVE-2019-9081,整体过程和原作者还是有些区别的,原作者思维比较跳跃的地方,我按自己的思维尝试摸索,有错误之处欢迎斧正。 环境搭建 使用composer+PhpStorm+xampp的方式配置laravel 首先下载composer,安装完成之后配置国内镜像源 composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ 使用PhpStorm直接在 xampp/htdocs 下创建composer项目 访问 public 目录出现如下界面表示Laravel配置成功 接下来创建控制器 php artisan make:controller DemoController 配置路由 Route::get('/demo', '\App\Http\Controllers\DemoController@demo'); 控制器 class DemoController extends Controller { public function demo() { if (isset($_GET[

Window下搭建foundation apps环境

你说的曾经没有我的故事 提交于 2020-02-14 08:06:11
Window 下搭建 foundation apps 环境 框架: AngularJS 、 Foundation , 构建工具: Gulp , 开发环境: node.js 。 操作系统:windows (一)环境准备 1 安装 node.js 1.1 安装最新版本( 0.12.7 ),安装时请选中“ add to path ” 选项 1.2 设置淘宝镜像,打开 cmd 窗口,输入以下命令 npm config set registry=http://registry.npm.taobao.org/ npm config set loglevel=http 如果安装不成功,可安装 cnpm: npm install -g cnpm --registry= https://registry.npm.taobao.org 1.3 打开 cmd ,窗口,输入 npm -v 检查是否安装成功 2 安装 Git 2.1 设置 Git 环境变量,右击“我的电脑” -> “属性” ->" 高级系统设置 "-> “环境变量” -> “系统变量” 下找到 path ,加入 git 的安装目录 C:\Program Files (x86)\Git\bin; 2.2 打开 cmd ,窗口,输入 git --version 检查是否安装成功 3 安装 Python 3.1 必须是 2.7-3.0 之间的版本

YYModel 源码解读(一)之YYModel.h

女生的网名这么多〃 提交于 2020-02-02 05:06:34
#if __has_include(<YYModel/YYModel.h>) FOUNDATION_EXPORT double YYModelVersionNumber; FOUNDATION_EXPORT const unsigned char YYModelVersionString[]; #import <YYModel/NSObject+YYModel.h> #import <YYModel/YYClassInfo.h> #else #import "NSObject+YYModel.h" #import "YYClassInfo.h" #endif __has_include 此宏传入一个你想引入文件的名称作为参数,如果该文件能够被引入则返回1,否则返回0。 拓展: #include / #import 语句有两种方式包含头文件,分别是使用双引号 " " 与左右尖括号 < > 。其区别是(对于不是使用完全文件路径名的)头文件的搜索顺序不同 使用双引号 " " 的头文件的搜索顺序: 包含该 #include 语句的源文件所在目录; 包含该 #include 语句的源文件的已经打开的头文件的逆序; 编译选项-I所指定的目录 环境变量INCLUDE所定义的目录 使用左右尖括号 < > 的头文件的搜索顺序: 编译选项-I所指定的目录 环境变量INCLUDE所定义的目录 再来介绍下

Objective-C 的Foundation库总结

风流意气都作罢 提交于 2020-02-02 04:46:17
Foundation库提供了基本的数据结构,包括 strings, arrays, dictionaries等。 NSString —– 创建字符串的方法 —– // 1 、创建常量字符串 NSString *astring = @”This is a String!”; //2、先创建一个空的字符串,然后赋值; // alloc和init组合则适合在函数之间传递参数,用完之后需要手工release NSString *astring = [[NSString alloc] init]; astring = @”This is a String!”; //3、在以上方法中,提升速度:initWithString方法 NSString *astring = [[NSString alloc ] initWithString :@”This is a String!”]; //4、创建临时字符串 NSString *astring; astring = [NSString stringWithCString :"This is a temporary string"]; // OR NSString * scriptString = [NSString stringWithString :@" tell application \"Mail\"\r"]; //5、创建格式化字符串

[php]laravel框架容器管理的一些要点

时光毁灭记忆、已成空白 提交于 2020-01-30 06:27:04
原文地址: https://www.cnblogs.com/lyzg/p/6181055.html 阅读目录 1. laravel容器基本认识 2. 如何在代码中获取到容器实例 3. 直观的认识laravel容器 4. 如何理解服务绑定与解析 5. 服务提供者的作用与使用 6. 服务绑定名称的别名 7. 依赖注入的机制 8. 其它 本文面向php语言的laravel框架的用户,介绍一些laravel框架里面容器管理方面的使用要点。文章很长,但是内容应该很有用,希望有需要的朋友能看到。php经验有限,不到位的地方,欢迎帮忙指正。 1. laravel容器基本认识 laravel框架是有一个容器框架,框架应用程序的实例就是一个超大的容器,这个实例在bootstrap/app.php内进行初始化: 这个文件在每一次请求到达laravel框架都会执行,所创建的$app即是laravel框架的应用程序实例,它在整个请求生命周期都是唯一的。laravel提供了很多服务,包括认证,数据库,缓存,消息队列等等,$app作为一个容器管理工具,负责几乎所有服务组件的实例化以及实例的生命周期管理。这种方式能够很好地对代码进行解耦,使得应用程序的业务代码不必操心服务组件的对象从何而来,当需要一个服务类来完成某个功能的时候,仅需要通过容器解析出该类型的一个实例即可。从最终的使用方式来看

laravel的模块化是如何实现的

微笑、不失礼 提交于 2020-01-30 00:58:30
laravel的模块化是如何实现的 在laravel提供的官方文档上,有一个这样的名词 服务提供者 ,文档中介绍了它在laravel框架中的角色,以及如何使用它,但却没有讲明 服务提供者 的本质--它是为了解决什么问题而存在的? 不解决这一点,对于它的理解,则只会停留在表面. 服务提供者 是laravel实现模块化设计的手法. 为什么要进行模块化设计这里就不说的,可以参考下这些: 模块化设计 , 模块化的意义何在? 为了实现模块化,必然要将一段程序组合起来,完成特定的事,从而形成模块.在 laravel 中, 一个模块都表现为一个 Service .应用程序主体与组件(模块)之间必然要通过某种方式连接起来,才能使组件被主体所调用.在laravel中一个 Service 会被它的 Service Prorider 注入到ioc中,这样组件就与主体联系了起来, 具体的表现形式则是组件被主体所用,主体使用组件完成组件所擅长的事. 源代码是最好的文档,接下来,我们就看看"文档"是怎么说的. laravel的启动过程 我们从启动开始,详细地分析在整个应用程序的生命周期中, Service Provider 到底是什么?通过阅读源码方式来了解 Serivce Provider 在laravel中到底做了什么. laravle的启动过程做了很多事,这里就不一一叙述了,主要说明有关 Sevice

Windows Communication Foundation

江枫思渺然 提交于 2020-01-26 05:57:19
Windows Communication Foundation Windows Communication Foundation (WCF) is Microsoft’s unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments. In This Section Guide to the Documentation A set of suggested topics to read, depending on your familiarity (novice to well-acquainted) and requirements. Conceptual Overview The larger concepts behind WCF. Getting Started Tutorial A set of walkthrough topics that introduces you to the experience

Windows Communication Foundation

徘徊边缘 提交于 2020-01-25 02:47:31
什么是 Windows Communication Foundation? Web 服务中包含了用于应用程序间通信的标准协议,它在全球范围内的广泛采纳改变了软件开发。 例如,如今 Web 服务提供的功能包括安全性、分布式事务协调和可靠的通信。 Web 服务所发生的这些改变的效益应反映在开发人员所使用的工具和技术方面。设计 Windows Communication Foundation (WCF) 的目的是为分布式计算提供可管理的方法,提供广泛的互操作性,并为服务定位提供直接的支持。 WCF 通过一种面向服务的新型编程模型简化了关联应用程序的开发。通过提供分层的体系结构,WCF 支持多种风格的分布式应用程序开发。 WCF 通道体系结构在底层提供了异步的非类型化消息传递基元。 而建立在此基础之上的是用于进行安全可靠的事务处理数据交换的各种协议功能,以及广泛的传输协议和编码选择。 类型化编程模型(称为“服务模型”) 设计用来降低分布式应用程序的开发难度,并为 ASP.NET Web 服务、.NET Framework 远程处理和企业服务领域的专业开发人员,以及将要从事 WCF 开发的人员提供熟悉的开发体验。 该服务模型的特点在于它将 Web 服务的概念直接映射到 .NET Framework 公共语言运行库 (CLR) 中的对应内容,包括将消息灵活且可扩展地映射到用诸如 Visual

What is a KeyPath used for?

只愿长相守 提交于 2020-01-24 02:15:27
问题 In Swift 4 many on the Foundation team have discussed how much easier it is to use keyPaths as compared to Swift 3. This begs the question... What is a keyPath? Seriously, I can't find any clear resources. 回答1: Objective-C has the ability to reference a property dynamically rather than directly. These references, called keypaths. They are distinct from direct property accesses because they don't actually read or write the value, they just stash it away for use. Let define a struct called

Is it possible to build Swift code using the Foundation Framework and target linux?

╄→尐↘猪︶ㄣ 提交于 2020-01-22 15:15:27
问题 I know it will be released as open source in the end of the year, however I would like to know, if I create a framework that uses the Foundation framework, will it still be possible to build for Linux? On the announcement it was said that they would be releasing Swift and a compiler for linux. Will builds of the open source version be limited to the standard Swift library? I would really like to create a Web Service in Swift to run in Linux, but I need the Foundation Framework (I don't need