upload-labs 1-19关 攻略 附带项目下载地址 小白也能看会

news2024/11/15 19:30:55

本文章提供的工具、教程、学习路线等均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如有侵权请联系小编处理。

环境准备:

1.靶场搭建

下载地址:GitHub - c0ny1/upload-labs: 一个想帮你总结所有类型的上传漏洞的靶场

下载完成后将zip包复制进phpstudy的软件目录下/—>D:\phpstudy_pro\WWW  在进行解压 

解压安装完成后在该文件夹内新建一个upload的空文件 用来后续靶场上传文件使用

2.一句话木马

# 1.php → 一句话木马
<?php @eval($_POST['cmd']); ?>
# 666.php → 测试所用的phpinfo
<?php phpinfo(); ?>

————————————————————分割线————————————————————

Pass-01

选择一个php文件,发现无法上传。然后抓包发现是抓不到 说明数据没有进入后端 说明是前端验证拦截 

然后我们将一句话木马1.php文件改成1.jpg格式后缀的上传然后进行抓包 

然后回显页面有这个图像就说明成功上传了 去upload文件下也能看到我们上传的木马文件

Pass-02

上传一个1.php 抓包发现限制了 上传类型 Content-Type: application/octet-stream

所以我们更改其验证类型为 image/jpeg、image/png、image/gif 其中任意一种就可以  成功上传

Pass-03

提示不让上传 所以我们改一下文件后缀名成功上传

某些特定环境中某些特殊后缀仍会被当作php文件解析 php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml

Pass-04

这关提示中后缀名黑名单有很多 所以我们换一种方式:.htaccess文件上传

.htaccess文件(或者分布式配置文件),全称是Hypertext Access(超文本入口)。提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。

首先创建一个.htaccess文件(文件名就为.htaccess)内容如下

AddType application/x-httpd-php .png

通常用于配置 Apache Web 服务器。这条命令会让服务器将 .png 图片文件识别为 PHP 脚本,并尝试使用 PHP 引擎来执行这些文件。

Pass-05 

查看源码,和第四关对比,发现这关没有转换大小写的代码

这样我们就可以上传大小写混合的后缀名来进行绕过。上传一个phpinfo.Php文件,直接上传成功。

Pass-06

 老样子 看一下源码 发现 少了一行尾部去空

所以我们只需要抓包的时候在尾部加一个空格即可

Pass-07

通过源码发现,本关并未对结尾点进行检测。那么这里就可以通过在后缀加上点进行绕过,其实点绕过和空格绕过是一样的,都是利用操作系统的特性来进行解析绕过

Pass-08

过源码发现并未对::$DATA进行检测。可以在后面添加::$DATA进行绕过

在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当成文件流处理,不会检测后缀名,且保持::$DATA之前的文件名,他的目的就是不检查后缀名

Pass-09

通过源码发现本关之前所有的绕过思路都被过滤了,但是通过源码发现,所有的过滤都是一次的,并未对其进行循环过滤。也就是说源码中提到的删除空格,删除点都是只删除一次,那么可以在数据包中将php后缀添加. .,形成.php.  .,由于只验证一次,所以删除一个点和一个空格后就不在删除了。

Pass-10

过源码发现,若上传的文件后缀在禁止的列中,那么就将后缀替换为空,而这里又是只过滤一次,那么就可以通过双写进行绕过。在php中再写一个php 

这样 即使删掉中间的php 外层php也会自动拼接成一个新的php

Pass-11

我们可以看到img_path是通过get传参传递的,那么我们不妨在这块将路径改掉,改为upload/web.php%00,那么后面不管是什么东西都会被截断掉,然后经过move_uploaded_file函数将临时文件重新复制给我们的截断之前的文件路径,当然,我们还是要上传jpg文件的,使得我们可以进行下面程序的运行

Pass-12

本关接受值从get变成了post,它两的区别就是get会自行解码,而post不会解码,所以需要对%00进行解码。所以在这一关我们就需要在web.php后面加一个占位符,将其16进制改为00,这样控制符就出现了,最后在上传文件的时候就会触发\00截断

在BS抓包中选中%00右键选择URL其次选择网址解码。

Pass-13

因为网站根目录下存在include.php 文件(文件包含漏洞) 没有的可以自行添加一下 

 <?php
/*
本页面存在文件包含漏洞,用于测试图片马是否能正常运行!
*/
header("Content-Type:text/html;charset=utf-8");
$file = $_GET['file'];
if(isset($file)){
    include $file;
}else{
    show_source(__file__);
}
?> 

然后我们制作一个图片马 进行上传 

然后我们去链接一下我们的图片马 注意语法格式 

http://192.168.3.222/upload-labs/include.php?file=upload//8520240728175046.gif

Pass-14

和13关一样直接上传图片马即可

Pass-15

和13关一样

Pass-16

这关存在imagecreatefromjpeg()函数将我们的图片打散进行二次渲染,这就会导致我们的一句话木马消失,所以我们就要想办法在他没有打散的对方将我们的一句话写进去 针对不同格式的图片马 有不同的对应方式 

这里我找的现成的gif 中间存在一句话木马的地方不会被函数打散 所以就按照图片马 的思路去做

Pass-17

条件竞争

也就是说如果我们上传php文件,他会删除我们上传的木马。

这么看来如果我们还是上传一个图片马的话,网站依旧存在文件包含漏洞我们还是可以进行利用。但是如果没有文件包含漏洞的话,我们就只能上传一个php木马来解析运行了。

先上传再删除,在上传到删除之间这几十毫秒之内我们的文件还是在的,我们就可以访问我们上传的文件。这种就就叫条件竞争漏洞(时间竞争漏洞),这道题干好符合条件我们就利用时间竞争来做

其实就是文件套娃 我们上传文件A 让文件A被检测删除之前 去运行生成一个木马文件B 木马文件B成功生成后 文件A也被检测到然后删除 此时只留下我们要用的木马文件B了 

文件A内容:

<?php file_put_contents('./web.php', '<?php phpinfo(); ?>'); ?>
这段代码的作用是创建或覆盖位于当前目录下的 web.php 文件,并在其中写入了一个简单的 PHP 脚本,该脚本将输出 PHP 的配置信息

我们抓到包后 发送到攻击模块 清除所有payload

我们要不断重复的去上传文件 然后去访问 因为要在系统删掉之前去访问到我们的web.php 让文件在当前目录下生成我们要的木马文件

Pass-18

跟图片马一个步骤 

Pass-19

上传文件时候可以选择上传文件名称 我们只需要 将上传文件名称后缀名加一个点即可成功访问 前提是靶场环境是Windows

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1964347.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nsight System and Nsight Compute 性能分析工具

Nsight System 系统级别去分析性能&#xff0c;也就是宏观方向。 Achieved Accupacy低&#xff1a;在Nsight System pipline可以直接看出来 kernel launch 延迟&#xff1a;cpu发起gpu执行kernel过程中&#xff0c;有个kernel launch环节&#xff0c;grid block。优化方法&a…

ScrollView(滚动条)

1.滚动到底部&#xff1a; 我们可以直接利用ScrollView给我们提供的:fullScroll()方法&#xff1a; scrollView.fullScroll(ScrollView.FOCUS_DOWN);滚动到底部 scrollView.fullScroll(ScrollView.FOCUS_UP);滚动到顶部 另外用这玩意的时候要小心异步的玩意&#xff0c;就是a…

iOS 18:照片应用添加“恢复”相册,可恢复数据库损坏所丢失照片!

小伙伴们可能在使用 iPhone 拍摄时遇到“明明拍下了&#xff0c;但是相册中却根本没有相关照片”的问题&#xff0c;而在 iOS 18 / macOS 15 中&#xff0c;苹果公司悄悄为“照片”应用引入了一项“恢复”功能以解决相关 Bug。 按照苹果的描述&#xff0c;照片、视频丢失可能是…

XXE漏洞复现

XML外部实体注入(XML Extenrnal Entity Injection)&#xff0c;简称XXE漏洞。引发XXE漏洞的主要原因是XML解析依赖库libxml默认开启了对外部实体的引用&#xff0c;导致服务端在解析用户提交的XML信息时未作处理直接进行解析&#xff0c;导致加载恶意的外部文件和代码&#xff…

一文剖析高可用向量数据库的本质

面对因电力故障、网络问题或人为操作失误等导致的服务中断&#xff0c;数据库系统高可用能够保证系统在这些情况下仍然不间断地提供服务。如果数据库系统不具备高可用性&#xff0c;那么系统就需要承担停机和数据丢失等重大风险&#xff0c;而这些风险极有可能造成用户流失&…

SpringBoot通过3种方式实现AOP切面

❃博主首页 &#xff1a; 「码到三十五」 &#xff0c;同名公众号 :「码到三十五」&#xff0c;wx号 : 「liwu0213」 ☠博主专栏 &#xff1a; <mysql高手> <elasticsearch高手> <源码解读> <java核心> <面试攻关> ♝博主的话 &#xff1a…

实战内测-某内测项目站点FUZZ到Sql注入

0x1 前言 下面给师傅们分享的案例呢是前段时间实战的一个站点&#xff0c;也是我朋友前段时间让我测的一个站点。整体的测试流程也还算ok&#xff0c;然后里面有些细节要是对师傅们有帮助可以收藏下&#xff0c;后面主要是利用FUZZ打了一个sql注入漏洞上去。 0x2 fuzz和sql结…

MAC安装acl

在编译前&#xff0c;需要先从 github https://github.com/acl-dev/acl 下载源码&#xff0c;国内用户可以选择从 gitee https://gitee.com/acl-dev/acl 下载源码。 3.1、Linux/Unix 平台上编译安装 在 Linux/Unix 平台上的编译非常简单&#xff0c;可以选择使用 make 方式或 …

【高校科研前沿】马里兰大学地理科学系在环境科学Top期刊发文:美国本土湿地因不透水面而损失的热点区域

1.文章简介 论文名称&#xff1a;Hotspots of wetland loss to impervious surfaces in the conterminous United States&#xff08;美国本土湿地因不透水面而损失的热点区域&#xff09; 第一作者及单位&#xff1a;Zhenhua Zou&#xff08;马里兰大学(美国)|助理研究教授&a…

Widget自定义动画按钮实战(鼠标进入则放大,离开恢复)

目录 引言 准备工作 步骤一&#xff1a;创建项目和基础控件 步骤二&#xff1a;设计UI 步骤三&#xff1a;自定义按钮类&#xff08;AniBtn&#xff09; 步骤四&#xff1a;在主窗口中使用自定义按钮 步骤五&#xff1a;编译和运行 总结 引言 在Qt开发中&#xff0c;自…

226翻转二叉树

解题思路&#xff1a; \qquad 树相关的题&#xff0c;大部分都可以通过递归来解决。因为树结构&#xff08;尤其是二叉树&#xff09;天然地具有递归发展的性质&#xff1a;对于二叉树的每个树节点&#xff0c;都有一个左节点和一个右节点&#xff0c;且能无限重复延伸。 \qqu…

World of Warcraft [retail] 100G download 2024.07.31

正式服 D:\Battle.net\World of Warcraft\_retail_

微信小程序-选中文本时选中checkbox

1.使用labe嵌套住checkbox标签 <label class"label-box"> <checkbox >匿名提交</checkbox> </label>2.使checkbox和label组件在同一行 .label-box{display: flex;align-items: center; }效果图 此时选中文本匿名提交&#xff0c;checkbox…

ft232 win10驱动

ft232 win10驱动 https://ftdichip.com/drivers/d2xx-drivers/

2024年导游资格证考试报名照很严格!

2024年导游资格证考试报名照很严格&#xff01; #导游证考试 #导游证 #导游资格证考试 #导游资格证 #全国导游证考试 #导游证报名

初学者如何快速掌握工程项目管理软件?

国内外主流的10款工程项目管理系统软件对比&#xff1a;PingCode、Worktile、金蝶EAS、用友NC、汉得信息H3 BPM、SAP ERP、Wrike、Zoho Projects、Accelo、Celoxis。 选择合适的工程项目管理系统软件往往令许多项目经理和团队感到头痛。这不仅关系到项目的效率和成功率&#xf…

C++初学(8)

8.1、string类简介 现在可以用string类型的变量而不是字符数组来存储字符串&#xff0c;string类也用的会比数组简单&#xff0c;同时提供了将字符串作为一种数据类型的表示方式。 要使用string类&#xff0c;必须在程序中包含头文件string。string类位于名称空间std中&#…

昇思25天学习打卡营第XX天|GAN图像生成

感觉顺序要调整下&#xff0c;先GAN再DCGAN再Diffusion 生成式对抗网络&#xff08;GAN&#xff09;是一种前沿的无监督学习模型&#xff0c;由Goodfellow在2014年提出。它包含生成器和判别器两个对抗组件&#xff1a;生成器负责创造逼真的假图像&#xff0c;判别器则判断图像…

多语种语音合成数据,拓宽语音大模型边界

近期&#xff0c;一个名为 ChatTTS 的文本转语音项目爆火出圈&#xff0c;在 GitHub 上已经斩获了 28 k 的 Star 量。 作为一款专门为对话场景设计的语音生成模型&#xff0c;ChatTTS 支持英文和中文两种语言。针对对话式任务进行了优化&#xff0c;实现了自然流畅的语音合成。…

PG物理复制剖析

文章目录 一、物理复制概述二、同步流复制三、pg_basebackup原理源码剖析主流程具体过程 四、主从原理基本介绍1、 WAL日志文件复制2、流复制&#xff08;Streaming Replication&#xff09; 主从原理主从间的通信walsender与walreceiver过程发生故障时的行为扩展问题 一、物理…