upload-labs文件上传靶场实操

文章目录

  • 1.Pass-01
  • 2.Pass-02
  • 3.Pass-03
  • 4.Pass-04
  • 5.Pass-05
  • 6.Pass-06
  • 7.Pass-07
  • 8.Pass-08
  • 9.Pass-09
  • 10.Pass-10
  • 11.Pass-11
  • 12.Pass-12
  • 13.Pass-13
  • 14.Pass-14
  • 15.Pass-15
  • 16.Pass-16
  • 17.Pass-17
  • 18.Pass-18
  • 19.Pass-19
  • 20.Pass-20

在这里插入图片描述
上传姿势总结:
1)改后缀名绕过
2)Content-Type绕过
3)本地文件包含
4)远程文件包含
5)httpd.conf黑名单绕过
6)htaccess绕过
7)大小写绕过
8)空格绕过
9)点绕过
10)特殊符号::$DATA绕过
11). .绕过
12)多写绕过(多写php)
13)%00截断目录绕过
14)16进制00截断目录
15)本地文件包含+文件头绕过
16)本地文件包含+图片马绕过
17)条件竞争绕过(二次渲染)
18)条件竞争+白名单上传7z+脚本执行
19)重命名数组法绕过

1.Pass-01

改后缀名绕过
只能上传图片,先上传一个jpg格式的图片,然后抓包改格式
改成3.php,以及Content-Type
Content-Type: application/octet-stream
在这里插入图片描述

上传成功后点击图片位置右键获取链接
在这里插入图片描述

得到http://127.0.0.1:9005/upload/3.jpg
改成php格式的就是payload
http://127.0.0.1:9005/upload/3.php
在这里插入图片描述

2.Pass-02

Content-Type绕过
使用上一关的方法还是提示报错,说明存在过滤
在这里插入图片描述

这里的办法是使用重复类型Content-Type
即既然它以Content-Type为准,那么我就先给他一个正确的Content-Type,然后再改后缀为.php

发现上传成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

getshell成功

3.Pass-03

方法一:本地文件包含
直接上传非php文件,使用本地包含文件getshell
在这里插入图片描述在这里插入图片描述
远程文件包含注意点
1.在php.ini中需要allow_url_include = on和allow_url_fopen= on
2.所需的远程文件后缀不能与目标服务器的语言相同,如目标服务器解析PHP代码,则远程文件后缀不能为.php。
比如远程服务上有如下两个文件
在这里插入图片描述

我们发现php格式的链接不了,而txt格式的反而可以
在这里插入图片描述
在这里插入图片描述

方法二:httpd.conf黑名单绕过
黑名单规则不严谨,在某些特定环境中某些特殊后缀仍会被当作php文件解析
php、php2、php3、php4、php5、php6、php7、pht、phtm、phtml
在这里插入图片描述

但是以上方法对nts版本的apache无效,需使用类似如下的版本
在这里插入图片描述

然后在httd.conf新增类型,再重启服务就可以解析php4了
在这里插入图片描述在这里插入图片描述

4.Pass-04

htaccess绕过
在这里插入图片描述

但是看来被过滤了
在这里插入图片描述

上传htaccesss试下
在这里插入图片描述

该文件的意思是,只要遇到文件名中包含有”backlion.jpg”字符串的任意文件,统一被当作php执行。如果这个” backlion.jpg”的内容是一句话木马,即可利用中国菜刀进行连接
前提条件是:大于等于php版本5.3.39以下
在这里插入图片描述

成功了
那么上传一个backlion.jpg的文件试下
在这里插入图片描述

上传成功,也被解析了
在这里插入图片描述

使用菜刀成功getshell

在这里插入图片描述在这里插入图片描述

5.Pass-05

大小写绕过
这关过滤了htaccess
在这里插入图片描述在这里插入图片描述

但是,只是通过大小写就上传成功了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.Pass-06

空格绕过
在这里插入图片描述在这里插入图片描述

测试的时候可以这样测
3.php
3.php .jpg
3.php . .jpg
3.php . . jpg

7.Pass-07

点绕过
在这里插入图片描述在这里插入图片描述

8.Pass-08

特殊符号::$DATA绕过
在这里插入图片描述在这里插入图片描述

测试是需把::$DATA删掉
在这里插入图片描述

9.Pass-09

. .绕过
在这里插入图片描述

执行后会自动去掉最后一个点
在这里插入图片描述

然后保存时又会去掉最后1个点
结果就保存了5.php
在这里插入图片描述

10.Pass-10

多写绕过
在这里插入图片描述

会自动删掉php
在这里插入图片描述

那么我就多写绕过
在这里插入图片描述在这里插入图片描述

11.Pass-11

%00截断目录
由于目录可控,且是百名单过滤,因此使用%00截断
并新建55.php,而filename里依旧上传jpg
在这里插入图片描述
在这里插入图片描述

12.Pass-12

16进制00截断目录
这关目录还是可控
在这里插入图片描述

33.php的16进制后面加00
在这里插入图片描述
在这里插入图片描述

上传后会自动新建33.php而抛弃后面的.jpg
在这里插入图片描述

13.Pass-13

本地文件包含+文件头绕过
文件头简介,不同的图片文件都有不同文件头,如:
PNG: 文件头标识 (8 bytes) 89 50 4E 47 0D 0A 1A 0A
JPEG: 文件头标识 (2 bytes): 0xff, 0xd8
GIF: 文件头标识 (6 bytes) GIF89a
白名单过滤,而且必须在内容里添加图片文件头,根据文件头生成图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

jpg需要输入16进制的ffd8

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

png文件头是16进制的8950
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

但是试想这一关如果没有文件包含漏洞的话又该怎么破呢

14.Pass-14

本地文件包含+图片马
和上一关一样,提示还是使用文件包含和图片马
GIF89a
在这里插入图片描述
在这里插入图片描述

Jpg 需在cmd使用copy命令制作图片马绕过
在这里插入图片描述
在这里插入图片描述

Png 89 50 4E 47 0D 0A 1A 0A
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

15.Pass-15

本地文件包含+图片马
源代码提示需开启php_exif
在这里插入图片描述

打开php.ini
把;extension=php_exif.dll前面的;去掉就行,然后重启服务
在这里插入图片描述

GIF:GIF89a
在这里插入图片描述

Jpg 需制作图片马
在这里插入图片描述

Png:
‰PNG

在这里插入图片描述

16.Pass-16

二次渲染+条件竞争
这关好像用到了二次渲染,因为上传后的图片马都找不到一句话木马了
针对二次渲染,需要用到一个对比工具Emeditor,找出没有改动的那块贴进一句话木马进去
首先把一句话木马复制出来
在这里插入图片描述

3C 3F 70 68 70 20 40 65 76 61 6C 28 24 5F 50 4F 53 54 5B 22 66 6E 61 6D 65 22 5D 29 3B 3F 3E 1A
然后找到没有改动的地方
在这里插入图片描述

这里我们选择下面的
在这里插入图片描述
在这里插入图片描述

保存出来再试下
在这里插入图片描述
在这里插入图片描述

Jpg和PNG的情况使用之前的方法搞不定,因为jpg是压缩编码的,据说需要使用脚本实现,而且成功率不高,而png几乎找不到没改动的,这两个单独提取出来做一个任务
解决方法是使用条件竞争实现,具体操作可参考
https://blog.csdn.net/wutiangui/article/details/131474195
Png格式
在这里插入图片描述

Jpg格式
在这里插入图片描述

17.Pass-17

条件竞争
17关也可以沿用上一关的做法,只是这里其实可以直接上传php,不需要文件包含
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

18.Pass-18

条件竞争+白名单上传7z+脚本执行
这关同样用到条件竞争,逻辑是先上传,如果是白名单里的则重命名,否则删除

import html
import requests
from threading import Thread
url="http://127.0.0.1/upload/uploadphpinfocmd.php.7z"
url2="http://127.0.0.1/upload/shell.php"
def request():global htmlglobal html_2html = requests.get(url)print(html.status_code)html_2=requests.get(url2)while True:t=Thread(target=request())t.start()if html_2.status_code==200:print("shell已生成")break

因此这里先上传一个白名单的文件*.7z
在这里插入图片描述

重复1000次,然后开启py脚本去访问这个生成的7z,去执行里面的代码
可以发现很快就跑出结果来了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

19.Pass-19

条件竞争+白名单上传7z+脚本执行
和上关同样
先持续上传1000次,生成*.7z
在这里插入图片描述
在这里插入图片描述

然后脚本追踪这个文件
在这里插入图片描述
在这里插入图片描述

20.Pass-20

重命名数组法
最后一关7z也被白名单过滤了
在这里插入图片描述

最后的做法还是只能参考别人的,就是使用数组法增加一个不支持的,最后一个使用支持的格式
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

合宙Air724UG LuatOS-Air LVGL API控件-图片(Gif)

图片(Gif) GIF图片显示,core版本号要>3211 示例代码 方法一 -- 创建GIF图片控件 glvgl.gif_create(lvgl.scr_act()) -- 设置显示的GIF图像 lvgl.gif_set_src(g,"/lua/test.gif") -- gif图片居中 lvgl.obj_align(g, nil, lvgl…

【AIGC】Stable Diffusion Prompt 每日一练0916

一、前言 1.1 写在前面 本文是一个系列,有点类似随笔,每天一次更新,重点就Stable Diffusion Prompt进行专项训练,本文是第022篇《Stable Diffusion Prompt 每日一练0916》。上一篇《Stable Diffusion Prompt 每日一练0915》 1.…

聚类分析 | MATLAB实现基于SOM自组织特征映射聚类可视化

聚类分析 | MATLAB实现基于SOM自组织特征映射聚类可视化 目录 聚类分析 | MATLAB实现基于SOM自组织特征映射聚类可视化效果一览基本介绍程序设计参考资料 效果一览 基本介绍 基于自组织特征映射聚类算法(SOM)的数据聚类可视化 可直接运行 注释清晰 Matlab语言 1.多特征输入&…

SEO优化:提升网站排名和流量的终极指南

💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 搜索引擎优化&#xff0…

多线程案例(3) - 定时器,线程池

一,定时器 定时器作用:约定一个时间间隔,时间到达后,执行某段代码逻辑。实际上就是一个 "闹钟" 。 1.1使用标准库中的定时器 标准库中提供了一个 Timer 类. Timer 类的核心方法为 schedule .Timer 类中含有一个扫描线…

防止泄露,保护隐私!如何清除你的谷歌搜索历史记录

按照以下说明学习如何从你的谷歌帐户、谷歌Chrome浏览器、谷歌iOS或Android应用程序或谷歌应用程序中删除你的谷歌历史记录。 如何从你的谷歌帐户中删除搜索历史记录 清除你的谷歌搜索历史并不意味着谷歌实际上会删除你的搜索数据。谷歌仍然会记录你如何以及何时使用某些功能…

C语言经典100例题(56-60)--画圆;画方;画线

目录 【程序56】题目:画图,学用circle画圆形 【程序57】题目:画图,学用line画直线。 【程序58】题目:画图,学用rectangle画方形。 【程序59】题目:画图,综合例子。 【程序60】题…

力扣236 补9.14

做不来,我做中等题基本上都是没有思路,这里需要先遍历祖先节点,那必然用先序遍历,这题还是官方题解容易理解,第二火的题解反而把我弄得脑袋昏昏的。 class Solution { TreeNode ans; public TreeNode lowestCommonAnce…

索引-动图演示存储过程

索引 二叉树存储过程演示 BThree存储过程 sql二级索引搜索过程 Id是唯一键,聚集索引 只存在一个 Name是二级索引 可以存在多个 第一种效率更高,不需要回表

数据治理的 “独孤九剑”

加gzh“大数据食铁兽”,了解更多大数据资讯! 来源:与数据同行 免责声明:以上报告均系本平台通过公开、合法渠道获得,报告版权归原撰写/发布机构所有,如涉侵权,请联系删除 ;资料…

浅谈C++|类的封装篇

引子: C认为万事万物皆为对象,对象有其属性和行为。 人可以作为对象,属性有姓名,年龄,身高,体重等,行为有行走,吃饭,唱歌等。 车也可以作为一个对象,属性有轮…

Jetpack Compose 介绍和快速上手

Compose版本发展 19年,Compose在Google IO大会横空出世,大家都议论纷纷,为其前途堪忧。 21年7月Compose 1.0的正式发布,却让大家看到了Google在推广Compose上的坚决,这也注定Compose会成为UI开发的新风向。 23年1月…

千里共婵娟 | 结合微信公众号用JavaScript完整开发实现换中秋头像的功能

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责…

uni-app运行到微信开发者工具-没有打印的情况

前言 到我们进场使用微信开发者工具时,就会发现它经常会有bug,特别是在软件更新,组件库更新之后 最近在更新微信开发者工具之后发现所有打印都不显示了,虽然是小问题-但对于强迫症很烦 以为是代码配置问题-结果是更新之后打印开…

制作ubuntu18.04系统盘

文章目录 前言一、下载ubuntu18.04的iso文件二、制作u盘系统盘2、使用ultra来制作系统盘2.1、加载iso2.2、制作系统盘 前言 安装ubuntu18.04系统 一、下载ubuntu18.04的iso文件 打开下面的网址,找到自己需要的iso文件 https://releases.ubuntu.com/二、制作u盘系…

任意区域的色彩一致性处理方法

影像任意感兴趣区域的色彩一致性处理方法,主要是针对掩膜后的影像,类似下图,对非背景区域的像素进行处理 其中非黑色部分我们叫待匀色区域。 这种处理 对于wallis 和直方图匹配 很容易实现,但是颜色转移就相对而言 困难点。 颜…

解决中国科大 USTC 邮箱系统的超大附件上传的邮箱控件安装问题

USTC邮箱系统上传超过 48M 的附件的步骤: 从文件中转站上传文件,会提示下载邮箱控件 cmplugin_setup.exe ,默认安装C盘即可 2. 安装好之后依然无法上传超大文件,因为只有 IE 浏览器支持该功能,所以可以使用 Edge 浏览…

华为云云耀云服务器L实例评测|Git 私服搭建指南

前言 本文为华为云云耀云服务器L实例测评文章,测评内容是 云耀云服务器L实例 Git 私有服务器搭建指南 系统配置:2核2G 3M Ubuntu 20.04 我们平时在使用代码托管服务的时候,可能某些代码托管平台对成员有限制,或是由于内容原因会对…

Python中异常处理4-4

在Python中的异常处理4-1_棉猴的博客-CSDN博客中提到,在try块中的代码运行时如果出现异常,会自动抛出这个异常。可以通过raise语句手动抛出异常。 1 raise语句手动抛出异常 raise后面跟要抛出的异常类或者异常类的实例,表示手动抛出该异常&…

【基于Cocos Creator 3.5的赛车游戏】8.引入触摸屏幕事件并简单的控制小车

转载知识星球 | 深度连接铁杆粉丝,运营高品质社群,知识变现的工具 项目地址:赛车小游戏-基于Cocos Creator 3.5版本实现: 课程的源码,基于Cocos Creator 3.5版本实现 上一张您已经对Cocos的坐标系有了了解。这一章我们将让小车能…