首页 > 其他分享 >文件上传upload-labs

文件上传upload-labs

时间:2024-04-25 21:14:18浏览次数:13  
标签:文件 黑名单 upload labs Pass 绕过 php 上传

文件上传upload-labs

相关函数

  • move_upload_file(file,newloc)、

file:要移动的文件

newloc:规定文件的位置

将上传的文件移动到新位置

通过HTTP POST 上传文件

如果目标文件已存在,则会被覆盖

  • unlike(file)

删除文件

  • in_array(search,array)

search:规定在数组中搜索的值

array:数组

搜索数组中是否存在指定的值

  • pathinfo

以数组形式返回文件路径信息,可以提取后缀,但存在绕过风险

explode()

  • 将字符串打散成数组

reset(array)

  • 返回数组中第一个元素并输出

empty()

  • 检查变量是否为空

count(array)

  • 返回数组中元素的数目

Pass-01(前端JS绕过/客户端校验绕过)

Tips:
查看网页源代码是否有限制的js代码,点击上传后直接弹框提示,但是没有发送数据包,即用了客户端认证方法

image-20240425102207892

方法:

删掉前端jscheck函数

image-20240425101418978

开启火狐插件过滤前端上传

image-20240425101636786

bp修改文件后缀上传

Pass-02(MIME绕过)

bp抓包修改MIME类型

image-20240425102440252

  • 源码分析

服务器对文件的扩展进行了判断

image-20240425102721167

Pass-03(黑名单绕过)

查看源码黑名单

image-20240425105233149

服务器需对绕过的文件进行解析,其apache配置文件httpd.conf中有如下配置(这里为了演示手动添加!)

重启服务

image-20240425104654408

修改后缀phtml上传成功

image-20240425105102823

Pass-04(黑名单绕过 .htaccess攻击)

黑名单限制大部分后缀文件

image-20240425105445085

由于上传的文件名未经过处理,这里使用.htaccess文件攻击

Tips:
.htaccess:apache服务器配置文件,负责相关网页针对目录下的配置,即在一个特定目录下放置一个包含指令的文件,其中的指令作用于此目录及其所有子目录。

先上传.htaccess文件

SetHandler application/x-httpd-php

在上传木马bp修改后缀名png上传成功解析

Pass-05(黑名单绕过 大小写文件名混淆)

与上一关相比,将.htaccess添加到黑名单里,并且没有大小写转换

image-20240425113353084

抓包修改成大写

image-20240425181814312

Pass-06(黑名单绕过 后缀双写逻辑绕过)

较上关多了转换小写

image-20240425181759732

利用双写点与空格绕过

image-20240425182009647

Pass-07(黑名单绕过 填点绕过)

源码

image-20240425182233666

抓包

image-20240425182341580

Tips:
利用windows下文件后添加的.会自动忽略

Pass-08(黑名单绕过 Win文件流特性绕过)

看源码

image-20240425182723176

Tips:
采用windows流特性绕过,在这里意思是php运行在windows上+"::DATA"会把::DATA之后的数据当作文件流处理,不会检测后缀名,且保持"::$DATA"之前的文件名,目的即使不检查后缀名

上传php文件,修改文件后缀添加::$DATA

image-20240425183350576

Pass-09(黑名单绕过 点空格点代码逻辑绕过)

看代码,黑名单严格,删除文件名末尾点,大小写转换,去除字符串,首尾去空

image-20240425183631842

绕过方法:

Tips:
代码逻辑绕过(这里代码逻辑先删除文件名末尾点,再首尾去空都只进行一次,因此可构造点空格绕过,利用windows特性)

抓包修改

image-20240425184003032

Tips:
目标服务器是windows皆可用此方法绕过

Pass-10(黑名单绕过 双写绕过)

上传,正常,文件被切掉后缀

image-20240425185729976

查看源码

image-20240425185927381

绕过方法:

str_ireplace()函数不区分大小写,因此不适用大小写,使用双写文件名绕过

image-20240425190432492

Pass-11(白名单绕过 00截断GET型绕过)

看源码

image-20240425191004744

构造文件存储路径使用get传入,导致服务器最终存储文件名可控

绕过方法:使用00截断绕过

条件:

php版本<5.3.4
php.ini的magic_quotes_gpc为OFF
所以我们要设置下小皮

php扩展及设置---参数开关设置---把magic_quotes_gpc关闭

版本切换成5.3.29

image-20240425200459445

Pass-12(白名单绕过 00截断POST型绕过)

post差别是post不会自行解码,我们需要对%00编码,

image-20240425200815731

Pass-13(图片马+文件包含绕过)

制作图片马

test.php内容

<?php @eval($_POST[1]); phpinfo();?>

image-20240425204728537

image-20240425204741229

不在桌面cmd使用copy都不会报错

使用010查看

image-20240425204853289

标签:文件,黑名单,upload,labs,Pass,绕过,php,上传
From: https://www.cnblogs.com/yang-ace/p/18158586

相关文章

  • 本地镜像发布到阿里云和上传到私服
    操作dockerlogin--username=zzyybuyregistry.cn-hangzhou.aliyuncs.comdockertagcea1bb40441cregistry.cn-hangzhou.aliyuncs.com/atguiguwh/myubuntu:1.1dockerpushregistry.cn-hangzhou.aliyuncs.com/atguiguwh/myubuntu:1.1本地镜像推送到私有库#1.下载镜像Dock......
  • Markdown To blog 图片文件上传
    具体可见【博客园皮肤美化&写博客】https://www.bilibili.com/video/BV1Rv4y1Y7KH/?share_source=copy_web&vd_source=aa794a877150d12d2f1ff15d63616ad3安装配置打开运行窗口输入control找到程序和功能->启用或关闭windows功能安装NET3.5安装dotnet-sdk-5.0.408-......
  • FormData传输JSON同时上传单个/多个文件问题
    背景最近在开发一个功能时,涉及到向后端接口发送:JSON请求参数多个文件刚开始想通过RequestBody(application/json)形式进行传值,但是文件不好处理。有一个通过application/json传输文件数据的方法,就是将文件转成base64,然后在后端进行处理。但是这种方式涉及到大文件传输的时候,转......
  • tinymce 5.X 和 6.X 富文本编辑器如何实现上传图片
    在项目中,前端会经常使用tinymce富文本编辑器插件,编辑器有上传图片的功能,而对于上传的这个图片的处理,有两种方式:编辑器中有一个images_upload_handler方法,上传图片会触发该事件,该事件有3个参数,分别是上传图片的文件内容、上传成功的success处理方法、上传失败的failure处理方法。......
  • Markdowmtoblog 文件图片上传
    pycnblog博客园上传markdown文件https://www.cnblogs.com/df888/p/11826480.html注意博客园6.21更新,MetaWeblog现在不支持密码登录,需要通过访问令牌(accesstoken)登录,在博客后台设置页面,允许MetaWeblog博客客户端访问,下方有MetaWeblog访问令牌,点击查看,创建访问令牌。功能一......
  • 使用@MultipartConfig上传图片文件
    @MultipartConfig是JavaServletAPI的一部分,主要用于处理HTTP的multipart/form-data类型的请求,这种请求通常用于文件上传。当你在Servlet或JSP页面中使用@MultipartConfig时,你告诉容器这个Servlet或JSP页面将处理文件上传。@MultipartConfig(location="C:/Users/Administrator......
  • 文件上传-cnblog
    文件上传概念文件上传漏洞是指用户上传了一个可执行的脚本文件(php、jsp、xml、cer等文件),而WEB系统没有进行检测或逻辑做的不够安全文件上传必须以POST提交表单。表单中需要<inputtype="file"name="upload">攻击者通过上传恶意文件传递给解释器执行,然后就可以在服务器上......
  • 测试(上传博客)
    数据结构——单链表笔记//指的是单向链表中的结点有效数据类型,用户可以根据需要进行修改typedefintDataType_t;//构造链表的结点,链表中所有结点的数据类型应该是相同的typedefstructLinkedList{ DataType_t data;//结点的数据域 structLinkedList *next;//结......
  • vue.js 3 上传文件:el-upload 组件
    "@element-plus/icons-vue":"^2.3.1","axios":"^1.6.8","element-plus":"^2.6.2","pinia":"^2.1.7","pinia-plugin-persistedstate":"^3.2.1","vue":&......
  • el-upload二次封装实现上传图片校验
    说明项目开发中,常常需要对上传图片做大小、类型、宽高校验实现要点el-upload中定义:before-upload="handleBeforeUpload"事件img.onload为异步事件,需要Promise包裹才能真正实现校验,直接returntrue|false是没用的代码<el-upload:before-update="handleBeforeUpdate":htt......