iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >文件上传漏洞
  • 666
分享到

文件上传漏洞

安全网络web安全php 2023-09-03 06:09:01 666人浏览 泡泡鱼
摘要

目录 前言 1.原理 2.类型 3.复现 3.1环境 3.1.1函数介绍 3.2过程 3.2.1客户端绕过 3.2.2服务端绕过         黑名单检查后缀         白名单检查后缀 前言 文件上传漏洞是wb安全中经常用到的一

目录

前言

1.原理

2.类型

3.复现

3.1环境

3.1.1函数介绍

3.2过程

3.2.1客户端绕过

3.2.2服务端绕过

        黑名单检查后缀

        白名单检查后缀


前言

文件上传漏洞是wb安全中经常用到的一种漏洞形式。是对数据与代码分离原则的一种攻击。上传漏洞顾名思义,就是攻击者上传了一个可执行文件如木马,病毒。恶意脚本,WEBshell等到服务器执行,并最终获得网站控制权限的高危漏洞。本文仅关联相关安全问题无其他导向

1.原理

程序员开发任意文件上传功能时,并未考虑文件格式后缀的合法性校验或者是否只在前端通过js代码进行后缀检验。这时攻击者可以上传一个与网站脚本语言相对应的恶意代码动态脚本,例如aspPHPaspxphp3php5等文件后缀)到服务器上,从而访问这些恶意脚本中包含的恶意代码,进行动态解析最终达到执行恶意代码的效果,进一步影响服务器安全。

2.类型

客户端绕过、服务端绕过

3.复现

3.1环境

upload-labs靶场+phpStudy小皮

GitHub - c0ny1/upload-labs: 一个想帮你总结所有类型的上传漏洞的靶场一个想帮你总结所有类型的上传漏洞的靶场. Contribute to c0ny1/upload-labs development by creating an account on gitHub.https://github.com/c0ny1/upload-labs小皮面板(phpstudy) - 让天下没有难配的服务器环境!phpStudy官网2019正式推出phpStudy V8.0版本PHP集成环境,支持windowslinux系统,支持WEB面板操作管理,一键网站开发环境搭建配置,另经典版本phpStudy2016/2018/JspStudy环境套件同步更新中,欢迎网站开发者或运维下载使用!Https://www.xp.cn/

3.1.1函数介绍

trim()作用:从一个字符串的两端删除空白字符deldot()作用:从字符串的尾部开始,从后向前删除点.,直到该字符串的末尾字符不是.为止strrchr()作用:查找字符串在另一个字符串中最后一次出现strtolower()作用:转换大小写str_ireplace()作用:字符串替换操作,不区分大小写

https://www.jb51.net/article/239371.htmhttps://www.jb51.net/article/239371.htm

3.2过程

3.2.1客户端绕过

原理

由于程序猿只在前端通过js代码进行后缀检验,正是他的粗心导致了可利用的漏洞

方法

(1)停用JavaScript(适用于upload-labs靶场的第一关)ctrl shift+i-->设置-->偏好设置-->停用javascript

总结

文件上传漏洞中如果是出现前端js限制这种情况,那么绕过方法非常简单就是停用浏览器的JavaScript,这种前端黑名单的限制方法是不应该出现的,更加严谨的是需要前端后端都需要进行限制,upload-labs的第二关就是对后端也进行了限制

3.2.2服务端绕过

原理

通过后端限制的缺陷来进行绕过,一般都是在网页上写一段javascript脚本,校验上传文件的后缀名是否合法,有白名单和黑名单两种形式,区别就是,黑名单明确了不能上传的文件格式,白名单则明确了可以上传的文件格式

黑名单检查后缀

方法 

(2)使用抓包工具burp修改包数据(适用于upload-labs靶场的第一、二关)创建一句话-->修改后缀满足“.jpg|.png|.gif”(绕过前端限制)-->设置浏览器代理(burp代理)-->通过burp抓包然后修改上传文件后缀然后放行

(3)通过大小写的方法绕过(适用于upload-labs靶场的第五关)PHP、Aspx等

(4)空格绕过(upload-labs靶场第六关)后缀使用空格技巧通过,绕过原因为后端并没有过滤空格,这里前提也是在Windows下利用它的特性会去除文件名空格

(5)使用点绕过(upload-labs第七关)+burp抓包绕过由于没有过滤点,我们可以通过后缀加点的方法绕过,这里是依据Windows系统自动去除上传文件的点

 

(6)Windows数据流特性,完整的数据后面是含有::$DATA的而这个::$DATA就称为数据流,只不过在文件的后缀中不会显示出来,所以利用这个特性我们就可以通过upload-labs靶场的第八关

(7)路径拼接绕过(upload-labs靶场第九关)第九关虽然限制的看似没有问题但是恰恰问题就出现在它的限制顺序中,我们考虑如果我们按照它的限制顺序让它把过滤的都过滤掉只剩下我们需要上传的就可以了

(8)双写绕过(upload-labs靶场第十关)通过burp抓包+双写后缀来绕过

(9)php后缀特性绕过(upload-labs靶场第三关)php2、php3、php5、phtml等,一般php配置文件中不会设置这样的特性,所以不会生效

(10)利用.htaccess配置+图片马绕过(upload-labs靶场第四关)利用它的伪静态特性,首先在.htaccess配置文件中写入命令让传入目标文件下的文件都用php执行,然后我们通过cmd合成一个图片马传入目标文件目录下,然后通过.htaccess文件的特性来使用php执行该图片马

编写.htaccess配置文件通过vscode进行修改内容如下,并将它传入目标路径下

SetHandler application/x-httpd-php

在cmd中通过以下命令生成图片马,test.php中的内容为我们写入的一句话木马

copy aa.png/b + test.php/a image.png

白名单检查后缀

方法

(1)MIME类型绕过服务端MIME类型检测是通过检查http包的Content-Type字段中的值来判断上传文件是否合法burp抓包修改content-Type实现绕过

常见的MIME类型 - Scivous - 博客园1,常见的MIME类型(通用型): 超文本标记语言文本 .html text/html xml文档 .xml text/xml XHTML文档 .xhtml application/xhtml+xmlhttps://www.cnblogs.com/scivous/p/14059858.html

(2)00截断漏洞&get型(出现于php5.2版本漏洞)(upload-labs第十一关)使用burp抓包添加%00然后修改php后缀名的方式绕过

00截断原理:\0截断了后面的执行语句让其默认已经执行完成了,所以导致恶意文件上传成功 

 

(3)00截断漏洞&post型(upload-labs第十二关)get传参首先在url要解码所以你就需要提前将\0进行编码成%00,而post传参不需要所以要把这里的%00解码使用burp抓包添加%00先对%00进行url-decode然后修改php后缀名的方式绕过

 

引入特别的Windows特性实例:U-Mail邮件系统在Windows+php+iis(phpstudy2018)环境下Windows具有以下特性小于号(<)相当于星号(*)大于号(>)相当于问号(?)双引号(")相当于小数点(.)这里我们又知道在操作系统中*星号表示所有的意思,所以利用这个特性我们可以去绕过一些特别的限制eg:当我们将这样的bypass.<<<文件上传到目标路径下相当于匹配了php后缀也就是bypass.php那么就可以达到我们想要的效果
(4)文件包含漏洞绕过(upload-labs靶场第十三、十四、十五关)生成图片马方法和前面的第4关中一样,然后上传验证是否成功

文件包含漏洞形成原因是:用户可以控制你包含的文件

文件包含漏洞解决方法:如果你使用了文件包含函数,那么你就需要将文件包含的文件写死,不要让用户可以去控制(url中输入的文件使包含成功)

(5)特殊的文件包含漏洞绕过(upload-labs靶场第十六关)使用了imagecreatejpeg()函数,通过010editor工具对比上传前后函数变化的位置,将一句话木马写入到未改变的位置来实现绕过

   

通过010工具对比修改前后的位置差异来插入一句话实现绕过 

(6)时间型竞争漏洞(upload-labs第十七关)依据“先上传后删除的特性+burp抓包进行时间竞争绕过

来源地址:https://blog.csdn.net/newlife1441/article/details/126329763

--结束END--

本文标题: 文件上传漏洞

本文链接: https://www.lsjlt.com/news/391735.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 文件上传漏洞
    目录 前言 1.原理 2.类型 3.复现 3.1环境 3.1.1函数介绍 3.2过程 3.2.1客户端绕过 3.2.2服务端绕过         黑名单检查后缀         白名单检查后缀 前言 文件上传漏洞是wb安全中经常用到的一...
    99+
    2023-09-03
    安全 网络 web安全 php
  • web漏洞之文件上传漏洞
    文章目录 一、漏洞原因二、漏洞危害三、漏洞利用1.三个条件2.利用方式3.绕过方式a.绕过JS验证① BP绕过② F12绕过③ 菜刀上传实操 b.绕过MIME-Type验证c.绕过黑名...
    99+
    2023-08-31
    前端 web安全 网络
  • 文件上传漏洞 (Part1)
    使用的平台是BWAPP 正常的安装完 bwapp ,在文件上传模块能够成功上传文件,但文件却不可以被保存,原因是images文件夹的权限不够,解决方法: docker exec -it 你的do...
    99+
    2023-09-10
    安全 php web安全
  • PHP文件上传漏洞
    前言  上礼拜一直在搞期中测试和unctf,没啥时间整理,这礼拜继续整理! PHP文件上传基础以及基本上传流程 文件上传前端:  前端部分往往都是表单提交,input 的 type 设置为 file ...
    99+
    2023-09-15
    php 开发语言 前端
  • 文件上传漏洞详解
    1.什么是文件上传漏洞 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本...
    99+
    2023-09-10
    安全 web安全
  • 浅谈文件上传漏洞
    前言 一、文件上传漏洞的原理 文件上传漏洞是指用户上传了一个可执行的脚本文件(php、jsp、xml、cer等文件),而WEB系统没有进行检测或逻辑做的不够安全。文件上传功能本身没有问题,问题在于...
    99+
    2023-09-10
    php web安全 安全
  • PHP-nginx-ctfShow文件上传漏洞
    CTFSHOW-文件上传-151到161关卡 151 152-JS验证+MIME Content-Type: image/png 153-JS验证+user.ini https://www.cnblogs.com/N...
    99+
    2023-10-05
    php nginx 安全
  • 网站漏洞修复之Metinfo 文件上传漏洞
    Metinfo CMS系统被爆出网站存在漏洞,可上传任意文件到网站根目录下,从而使攻击者可以轻易的获取网站的webshell权限,对网站进行篡改与攻击,目前该网站漏洞影响范围是Metinfo 6.2.0最新版本,以及以前的所有Metinfo...
    99+
    2023-06-03
  • dvwa中的文件上传漏洞
    环境: Metasploitable2: 192.168.11.157 dvwa版本:Version 1.0.7 (Release date: 08/09/10) kail机器:192.168.11.156 一、什么是文件上传...
    99+
    2023-09-11
    web安全 dvwa 文件上传漏洞 Powered by 金山文档
  • 文件上传漏洞总结(全)
    文件上传漏洞 凡是存在上传文件的地方,都有可能存在文件上传漏洞,并不是说有文件上传就一定有文件上传漏洞。 原理 这主要看一些文件上传的代码有没有 严格限制用户上传的文件类型,比如,只可以上传.jpg|.png|.gif文件,但是由于代码不严...
    99+
    2023-10-06
    php 安全 web安全
  • 【文件上传漏洞】user.ini留后门
    一、什么是.user.ini? php.ini是php默认的配置文件。其中包含四种配置, 在PHP_INI_USER的配置项中,提到.user.ini。 这里作用解释如下: 除了主 php.ini 之外,PHP 还会在每个目录下扫描 ...
    99+
    2023-09-03
    php 开发语言
  • 文件上传漏洞通关教程
    原理:应用程序中存在上传功能,但是对上传文件没有经过合法性校验或者检验函数存在缺陷,导致攻击者可以上传木马文件到服务器application/octet-stream pass-01:(前端js+抓包) 上传php文件页面提示不允许上传(前...
    99+
    2023-08-31
    javascript php web安全
  • Dcat Admin文件上传漏洞复现
    Dcat Admin框架 Dcat Admin是一个基于laravel-admin二次开发而成的后台系统构建工具,只需极少的代码即可快速构建出一个功能完善的高颜值后台系统。支持页面一键生成CURD代码,内置丰富的后台常用组件,开箱即用,...
    99+
    2023-09-07
    安全 web安全
  • 文件上传靶场-Nginx文件解析漏洞
    目录 1.靶场漏洞说明 2.漏洞利用过程 1.靶场漏洞说明 靶场地址:http://106.15.50.112:8020/ 一个简单的Nginx文件上传靶场,php配置中将cgi.fix_pathinfo设置为1,如果我们设置一个文件路径...
    99+
    2023-09-25
    php web安全 nginx 网络安全 学习
  • java文件上传漏洞怎么解决
    要解决Java文件上传漏洞,可以采取以下措施: 文件类型白名单过滤:在服务器端对文件上传请求进行检查,确保只接受预期的文件类型。...
    99+
    2023-10-27
    java
  • 网络安全之文件上传漏洞
    目录 一.文件上传漏洞原理🐱‍🏍🐱‍🏍🐱‍🏍 1.文件上传功能 2.一句话木马 二Webshell介绍☠☠☠ 1.一句话木马的特点 2.小马 3...
    99+
    2023-09-14
    php 安全 web安全 文件上传 网络安全
  • 任意文件上传漏洞(CVE-2018-2894)
    漏洞描述 Weblogic管理端未授权的两个页面存在任意上传jsp文件漏洞,进而获取服务器权限。Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Te...
    99+
    2023-09-24
    php java 网络安全
  • 文件上传漏洞(全网最详细)
    目录 前言 文件上传漏洞介绍 文件上传漏洞危害 文件上传漏洞满足条件 文件检测流程 CTFSHOW 151关-170关 151关:前端验证绕过 152关:后端校验 Content-Type 校验文件格式 153关:filename字段文件...
    99+
    2023-10-10
    安全 web安全 php
  • 文件上传漏洞php相关函数
    file_exists(path) 检查文件或目录是否存在。 参数描述path必需。规定要检查的路径。 如果指定的文件或目录存在则返回 TRUE,否则返回 FALSE move_uploaded_file(file,newloc) 把上传...
    99+
    2023-09-03
    php web安全
  • 【文件上传漏洞-04】文件上传路径截断靶场实战
    路径截断 00截断 在ASCII码中,00代表的是空(Null)字符,在URL中表现为%00。在文件截断攻击中,就是采用空字符来误导服务器截断字符串,以达到绕过攻击的目的。00截断会导致文件上传路径截断 原理: 服务器后台采用的是m...
    99+
    2023-09-05
    安全 Powered by 金山文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作