当前位置: 首页 > news >正文

UPLOAD-LABS1

less1

(js验证)

我们上传PHP的发现不可以,只能是jpg,png,gif(白名单限制了)

 我们可以直接去修改限制

在查看器中看到使用了onsubmit这个函数,触发了鼠标的单击事件,在表单提交后马上调用了return checkFile这个函数对上传的文件进行检查

把onsubmit这个直接删除掉即可。当提交表单时执行一段 JavaScript。它只认true或者false.如果不返回值,则默认为true

上传同样的文件,蚁剑链接即可

我们也可以直接去抓包修改

 修改好之后就用蚁剑连接就可以了

less2

绕过MIMETYPE

MIME:多用途互联网邮件扩展协议。用途为根据文件后缀名判断文件类型,用什么应用程序打开,但是在这里是根据文件类型判断后缀名。$_FILES['myfile']['type']文件的MIME类型,需要浏览器提供该信息的支持,例如"image/gif"MIME 给出的是文件的MIME信息 ,此信息可以用来在HTTP Conten-type 头 信息中发送 正确的信息,如:header("Cotent-type:image/gif")

知道这一关是MIME验证,就是会检查求情包, 只对文件类型(type)进行了验证,必须要是image/jpeg或者image/png或者image/gif的格式,没有对后缀进行验证,只需要使用bp抓包将Content-Type:的参数修改成image/jpeg或者image/png或者image/gif其中的一种,进行绕过就好

分类

最常见的还是image

我们也是直接看看php可不可以,不可以我们抓包看看,png改成php,再访问就可以了,这里是没有改类型,而是改后缀

 重新上传3.php,mm为cmd

 

 less3

任务

上传一个脚本文件到服务器,并能成功执行。
 

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array('.asp','.aspx','.php','.jsp');$file_name = trim($_FILES['upload_file']['name']);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //收尾去空if(!in_array($file_ext, $deny_ext)) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;            if (move_uploaded_file($temp_file,$img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = '不允许上传.asp,.aspx,.php,.jsp后缀文件!';}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}
}

 禁止上传.asp|.aspx|.php|.jsp后缀文件,过滤不严格,用.phtml .php5 .pht进行绕过

 less4

任务

拿到一个shell

提示

禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf后缀文件!

可以看到这道题被限制的太多了

上传.htaccess文件看看

 .htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置.通过htaccess文件,可以实现:网页301重定向、自定义404页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能

双引号即后面需要上传的

先上传  .htaccess 成功后再上传 .png文件

也就是将png文件当作php文件执行

 

 less5

任务

上传一个webshell到服务器

提示

禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf后缀文件

先尝试hatccess,提示却说此文件也被限制了,

 查看源码

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");$file_name = trim($_FILES['upload_file']['name']);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, '.');$file_ext = strtolower($file_ext); //转换为小写$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空if (!in_array($file_ext, $deny_ext)) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH.'/'.$file_name;if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = '此文件类型不允许上传!';}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}
}

 可以和前面的对比一下看看

第五关比第四关少了strtolower,这说明我们可以尝试大小写绕过

$file_ext = strtolower($file_ext); //转换为小写

 上传shell.Php,上传成功

 

 less6

任务

拿到一个shell服务器
 

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {if (file_exists(UPLOAD_PATH)) {$deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");$file_name = trim($_FILES['upload_file']['name']);$file_name = deldot($file_name);//删除文件名末尾的点$file_ext = strrchr($file_name, '.');$file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA$file_ext = trim($file_ext); //首尾去空if (!in_array($file_ext, $deny_ext)) {$temp_file = $_FILES['upload_file']['tmp_name'];$img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;} else {$msg = '上传出错!';}} else {$msg = '此文件类型不允许上传!';}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';}
}

 也是有黑名单,但是缺少strtolower,说明可以尝试大小写绕过

还有发现第六关没有

$file_ext = trim($file_ext); //首尾去空

先看大小写绕过,其他师傅可以

 提示

 禁止上传.php|.php5|.php4|.php3|.php2|php1|.html|.htm|.phtml|.pHp|.pHp5|.pHp4|.pHp3|.pHp2|pHp1|.Html|.Htm|.pHtml|.jsp|.jspa|.jspx|.jsw|.jsv|.jspf|.jtml|.jSp|.jSpx|.jSpa|.jSw|.jSv|.jSpf|.jHtml|.asp|.aspx|.asa|.asax|.ascx|.ashx|.asmx|.cer|.aSp|.aSpx|.aSa|.aSax|.aScx|.aShx|.aSmx|.cEr|.sWf|.swf后缀文件

观察一下这个提示就会发现没有过滤到pHp6,可以上传看看

发现是可以的

http://www.lryc.cn/news/223915.html

相关文章:

  • WordPress相关文章推荐
  • 【QML】Qt和QML获取操作系统类型
  • CSS 显示、定位、布局、浮动
  • Java 学习笔记
  • 项目实战:优化Servlet,把所有围绕Fruit操作的Servlet封装成一个Servlet
  • Go语言函数参数
  • 【遍历二叉树的非递归算法,二叉树的层次遍历】
  • 数模之线性规划
  • 【C++】AVL树的4中旋转调整
  • 【MATLAB源码-第69期】基于matlab的LDPC码,turbo码,卷积码误码率对比,码率均为1/3,BPSK调制。
  • Java获取时间戳、字符串和Date对象的相互转换、日期时间格式化、获取年月日
  • 用c语言实现矩阵转置
  • 蓝桥杯官网练习题(移动距离)
  • 不止于“初见成效”,阿斯利康要让数据流转,以 AI 带动决策智能
  • nav2 调节纯追踪算法
  • 安装RabbitMQ
  • Spring基础(1):两个概念
  • 国产化精密划片机已得到国内更多厂家青睐
  • Voice Control for ChatGPT简单高效的与ChatGPT进行交流学习。
  • flutter生态一统甜夏 @Android @ios @windowse @macos @linux @Web
  • 计算机基础知识49
  • el-table给某一行加背景色
  • 搭建 Makefile+OpenOCD+CMSIS-DAP+Vscode arm-none-eabi-gcc 工程模板
  • Unity场景ab包加载压缩(LZ4,LZMA)格式的测试
  • 私有化部署大模型:5个.Net开源项目
  • 安卓系统手机便签app使用哪一款?
  • SpringCloud-Gateway无法使用Feign服务(2021.X版本)
  • 基于SSM的建筑装修图纸管理平台
  • Apache Doris (五十二): Doris Join类型 - Broadcast Join
  • Docker从入门到上天系列第四篇:docker平台入门图解与平台架构图解