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

upload-labs Pass5-18 文件上传

第五关

image-20250305165313285

查看源码,发现是黑名单过滤

我们建立一个php文件进行上传

image-20250305165615319

image-20250305165535141

会发现上传失败

当我们将小写的php改成大写的PHP时

image-20250305165829069

会上传成功

image-20250305175913647

第六关

image-20250305170207786

相比较第五关会有大小写转换 ,也会少去空格的操作

在windons中 文件后缀有 ( 空格 . 点 ::$DATA) 会自动去掉

我们上传一个文件使用burp进行抓包 修改后缀名

image-20250305172506359

发现上传成功

image-20250305172526721

第七关

image-20250305172935950

相比缺少去点的过滤

image-20250305173101383

我们在上传的文件抓包后给后缀名后加点 则上传成功

image-20250305173119699

第八关

image-20250305173443551

看源码 少一个去::$DATA

image-20250305173605738

进行抓包在后缀加上::$DATA

image-20250305173703280

就可以绕过

第九关

image-20250305173813368

发现( 空格 . 点 ::$DATA) 都有过滤 但是先去空、去点、在去空

如果写点空点就可以绕过

image-20250305174517022

上传成功

image-20250305174532900

第十关

image-20250305174630837

查看源码发现会将后缀过滤

image-20250305175202673

将后缀双写

image-20250305175007813

image-20250305175851470

第十一关

image-20250305180003983

会涉及00截断

截断原理就是%00置空,将后面的内容忽略,所以原来的:

$img_path='…/upload//9520220401035448.jpg’在加了截断之后就可以变成:

$img_path='…/upload//11.php

此时直接连接就行

我们将上传的文件更改后缀为jpg使文件可以正常上传

image-20250305181907496

打开目录发现有上传的文件

image-20250305182002404

但是文件中的参数并不会运行

我们使用抓包工具再次上传

image-20250305182145837

将后面加web.php%00即可上传成功

image-20250305184311172

第十二关

image-20250305184512780

这关与第十一关相近 。上一个是get传参这关是post传参

进行抓包

image-20250305184720494

在这里后面打一个空格

image-20250305184829726

将这里改为00

image-20250305184929038

返回主页发现这里会多一个\0 就是%00

image-20250305185105015

进行放行即可上传成功

第十三关

image-20250305194230655

看需求是需要图片码

我们在终端中输入

image-20250305194456968

生成图片码

进行上传

image-20250305194614620

我们进行查看

image-20250305194658519

第十五关 第十四关与十三关相同只是十四关会判定图片的类型

第十六关

image-20250305195146200

image-20250305200503610

由于这个函数会打乱 并生成一个新的图片则上传的新图片不能运行php代码

所以我们将上传的图片码下载出来放到010 edtior中进行对比寻找没有打乱的00部分进行php代码插入

由于暂时找不到该位置,我们采用国外大牛写的脚本

<?php $p = array(0xa3, 0x9f, 0x67, 0xf7, 0x0e, 0x93, 0x1b, 0x23, 0xbe, 0x2c, 0x8a, 0xd0, 0x80, 0xf9, 0xe1, 0xae, 0x22, 0xf6, 0xd9, 0x43, 0x5d, 0xfb, 0xae, 0xcc, 0x5a, 0x01, 0xdc, 0x5a, 0x01, 0xdc, 0xa3, 0x9f, 0x67, 0xa5, 0xbe, 0x5f, 0x76, 0x74, 0x5a, 0x4c, 0xa1, 0x3f, 0x7a, 0xbf, 0x30, 0x6b, 0x88, 0x2d, 0x60, 0x65, 0x7d, 0x52, 0x9d, 0xad, 0x88, 0xa1, 0x66, 0x44, 0x50, 0x33);



$img = imagecreatetruecolor(32, 32);

for ($y = 0; $y < sizeof($p); $y += 3) { $r = $p[$y]; $g = $p[$y+1]; $b = $p[$y+2]; $color = imagecolorallocate($img, $r, $g, $b); imagesetpixel($img, round($y / 3), 0, $color); }

imagepng($img,'./1.png'); ?>

运行后得到1.png再进行上传

image-20250305215657906

上传成功,我们在文件夹中用记事本查看上传的图片发现里面的内容没有改变

image-20250305215854213

已上传成功但是

image-20250305222037129

使用蚁剑连接则

image-20250305222147867

第十七关

image-20250305222559733

该代码会先上传后删除,我们将木马上传到上一级目录中则可以避免删除

有两种方法

image-20250305222838522

我们进行抓包上传

image-20250305223310655

在爆破模块上传

image-20250305230159699

可看到确实成功

第十八关与第十七关类似只是第十八关需要做图片码进行上传 其他与十七关相同


http://www.kler.cn/a/572902.html

相关文章:

  • 观察者模式的C++实现示例
  • 从零开始的kafka学习 (一)| 概念,Java API
  • 从vue源码解析Vue.set()和this.$set()
  • 深入浅出:UniApp 从入门到精通全指南
  • 360图片搜索爬虫|批量爬取搜索图片
  • 关于在vue3中的动态组件component标签上给ref属性动态赋值的问题
  • Java进阶-SpringCloud设计模式-工厂模式的设计与详解
  • 原型链与继承
  • 【RAG 篇】万字长文:向量数据库选型指南 —— Milvus 与 FAISS/Pinecone/Weaviate 等工具深度对比
  • 软考架构师笔记-进程管理
  • 自动驾驶---不依赖地图的大模型轨迹预测
  • AI与.NET技术实操系列
  • Python:函数的各类参数以及函数嵌套
  • Mono里运行C#脚本44—System.Console.WriteLine()函数的生成过程
  • L2-001 紧急救援
  • CS144 Lab Checkpoint 0: networking warm up
  • java数据结构_Map和Set_HashMap 底层源码解读_9.5
  • python量化交易——金融数据管理最佳实践——使用qteasy大批量自动拉取金融数据
  • 前端练习项目:html css js 开发AI数字人平台官网前端静态页面
  • 【AIGC】通义万相 2.1 与蓝耘智算:共绘 AIGC 未来绚丽蓝图