【网络安全 --- 文件上传靶场练习】文件上传靶场安装以及1-5关闯关思路及技巧,源码分析
一,前期准备环境和工具
1,vmware 16.0安装
若已安装,请忽略
【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客文章浏览阅读186次,点赞9次,收藏2次。【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)https://blog.csdn.net/m0_67844671/article/details/133609717?spm=1001.2014.3001.5502
2,win2003虚拟机的安装
若已安装,请忽略
【网路安全 --- win2003安装】 windows server 2003 详细安装过程(提供镜像资源)_win2003server安装教程_网络安全_Aini的博客-CSDN博客文章浏览阅读183次。【网路安全 --- win2003安装】 windows server 2003 详细安装过程(提供镜像资源)_win2003server安装教程https://blog.csdn.net/m0_67844671/article/details/133675835?spm=1001.2014.3001.5502
3,pikachu靶场安装
pikachu靶场的话我们用不到,但是讲了如何安装phpstudy2018,360zip,notepad++等工具,这些工具会用到
【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)_网络安全_Aini的博客-CSDN博客文章浏览阅读148次,点赞11次,收藏2次。【网路安全 --- pikachu靶场安装】超详细的pikachu靶场安装教程(提供靶场代码及工具)https://blog.csdn.net/m0_67844671/article/details/133682360?spm=1001.2014.3001.5502
4,Burp Suite 抓包工具安装
若已安装,请忽略
【网络安全 --- Burp Suite抓包工具】学网安必不可少的Burp Suite工具的安装及配置-CSDN博客文章浏览阅读134次。【网络安全 --- Burp Suite抓包工具】学网安必不可少的Burp Suite工具的安装及配置https://blog.csdn.net/m0_67844671/article/details/133843910?spm=1001.2014.3001.5502
二,文件上传下载靶场安装
2-1 靶场资源下载
靶场及用到的工具百度网盘下载地址如下:
百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1E2UWMOFhM9xmju51m8Lu9Q?pwd=8888
提取码:8888
现在已经准备好的环境应该如下:
win2003 系统
phpstudy2018 ----- 提供web服务
Burp Suite抓包工具 ---- 可以安装在win10虚拟机或者物理机上
360zip,notepad++ ---------- 非必需,但是win2003上没有解压缩工具和记事本
2-2 靶场安装
1,从工具文件家里把upload文件夹放到web服务器根目录上
2,启动我们的web服务器
3,查看服务器IP地址
win + r 打开命令框输入cmd回车 ,然后输入ipconfig
4,在物理机上ip地址加跟目录访问 192.168.31.159/upload
到此靶场安装完成
三,文件上传下载 1-5 关
3-1 第一关:
第一关是前端校验绕过,之前学习的时候已经学过了,可以直接修改代码绕过,或者抓包修改绕过
那就源代码绕过。鼠标右击,点击检查
不过谷歌浏览器就是有点问题,这样行不通,可以用火狐浏览器试一下
提示uploads文件夹不存在,请手工创建,所以在upload文件夹下还需要创建一个upload文件夹
创建好了文件夹以后,回到火狐浏览器继续试一下
应该是上床成功了,我们去upload文件夹下看看
确实已经上传成功了,第一关就这样过了
第二种就是抓包修改,你们还记得吗,先把webshell后缀改为png或jpg,然后上传的时候抓包,数据包中把后缀也改过来,这个就留给你们自己试一下,之前讲的时候详细讲过了的
3-2 第二关:
可以查看源码,发现它检查的是mime类型,之前也讲过了这个如何绕过,就是抓包改content-type改一下
如果直接选择php结尾的webshell的话就提示文件类型不正确
我们上传的时候抓包,该文件类型试一试 ,源代码里面已经给了白名单
上传成功了
3-3 第三关:
黑名单绕过之php3、php5
大家可以看看源代码
$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‘),我们可上传php3,php5...等这样可以被服务器解析的后缀名,当然,这个是根据服务器的配置来,如果配置中可以被解析,那么我们就可以上传这样的文件,不过现在apache等默认是不支持这种文件解析了。比如下面这种
现在默认是解析不了的,除非改apache的配置文件
我们选择了一个php3的文件,结果能上传成功了
但是我们看看它能不能执行
192.168.31.159/upload/upload/202310291406466984.php3
因为apache默认不会运行php3,php5结尾的文件
让apache解析,修改httpd配置文件,如下位置
AddType application/x-httpd-php .php .phtml php3 php5
随便找个位置,然后加上上面那句话 ,保存
重启服务器
重试以后还是一样的原因,不过这种漏洞很少见,一般服务端不会开启那个配置,而且默认是关闭的,所以即便上传成功了,也没办法以php代码执行,除非想办法改后缀
3-4 第四关:
黑名单绕过 .htaccess和文件名叠加特性绕过
分析代码发现,这里对上传的后缀名的判断增加了,php3.php5....已经不允许上传,但是没有限制.htaccess文件的上传,所以我们依然可以使用。
这是也是黑名单中的一种方法,黑名单中没有将这个后缀名的文件加入黑名单,那么我们就可以利用这种文件来进行攻击,这种文件是apache的一个配置文件,里面我们写了三行代码。可以说是,这个文件中可以改apache的配置,导致apache出现解析漏洞。
<FilesMatch "">
SetHandler application/x-httpd-php
</FilesMatch>
我们只要把这个文件上传上去,然后再上传一个jpg啊之类的可上传的后缀名文件上去,那么apache都会当作php文件来解析,我这里就不上传了,比如我们在upload文件夹中放这么两个文件:
上传以后访问后的效果
3-5 第五关:
大小写混合绕过
分析代码,发现以.htaccess为后缀的文件已经不允许上传,并且上传的文件被改名字了,所以我们上面的方式都不行了,但是 $file_ext = strtolower($file_ext); //转换为小写 这一句没有了,我们就可以使用文件名后缀大小写混合绕过,把1.php改为1.phP...来上传
比如选了一个tou.pHP文件就成功上传了
相关文章:

【网络安全 --- 文件上传靶场练习】文件上传靶场安装以及1-5关闯关思路及技巧,源码分析
一,前期准备环境和工具 1,vmware 16.0安装 若已安装,请忽略 【网络安全 --- 工具安装】VMware 16.0 详细安装过程(提供资源)-CSDN博客文章浏览阅读186次,点赞9次,收藏2次。【网络安全 --- 工…...

BUUCTF刷题记录
[BJDCTF2020]Easy MD51 进入题目页面,题目提示有一个链接,应该是题目源码 进入环境,是一个查询框,无论输入什么都没有回显,查看源码也没什么用 利用bp抓包查看有没有什么有用的东西 发现响应的Hint那里有一个sql语句&…...

黑客技术(网络安全)—小白自学
目录 一、自学网络安全学习的误区和陷阱 二、学习网络安全的一些前期准备 三、网络安全学习路线 四、学习资料的推荐 想自学网络安全(黑客技术)首先你得了解什么是网络安全!什么是黑客! 网络安全可以基于攻击和防御视角来分类&am…...
免登陆 同步脚本 zookeeper kafka集群详细安装步骤
一.免登陆配置 #修改注解名 vim /etc/hostname #修改host文件 vim /etc/hosts 192.168.1.10 kafka1 kafka1 192.168.1.11 kafka2 kafka2 192.168.1.12 kafka3 kafka3#免登陆生成秘钥和授权自动登陆 ssh-keygen -t rsa cd ~/.ssh shh-copy-id kafka1 shh-copy-id kafka2 shh-co…...
深入理解NLP
引子 自然语言处理(Natural Language Processing, NLP)是人工智能领域中的一个重要研究方向,它涉及了计算机与人类自然语言之间的交互和理解。 1. NLP的起源与发展 NLP的起源可以追溯到早期的机器翻译项目,随着科技的进步&…...

Python-自动化绘制股票价格通道线
常规方案 通过将高点/低点与其 2 个或 3 个相邻点进行比较来检测枢轴点,并检查它是否是其中的最高/最低点。对所有枢轴点进行线性回归以获得上方和下方趋势线。价格离开通道后建仓。通过这样做,我们得到如下所示的价格通道。我认为我们可以利用给定的数据取得更好的结果。...

CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。
文章目录 前言SHA-1加密算法介绍关于SHA-1和MD5 SHA-1 加密过程原文处理设置初始值和数据结构定义加密运算原理过程 在python中调用SHA-1 前言 MD5学习MD5加密算法 SHA-1加密算法介绍 SHA-1(Secure Hash Algorithm1,安全散列算法1)是一种密…...

海南海口大型钢结构件3D扫描全尺寸三维测量平面度平行度检测-CASAIM中科广电
高精度三维扫描技术已经在大型工件制造领域发挥着重要作用,特别是在质量检测环节,高效、高精度,可以轻松实现全尺寸三维测量。本期,CASAIM要分享的应用是在大型钢结构件的关键部位尺寸及形位公差检测。 钢结构件,是将…...

【PyQt学习篇 · ④】:QWidget - 尺寸操作
文章目录 QWidget简介QWidget大小位置操作案例一案例二 QWidget尺寸限定操作案例 内容边距案例 QWidget简介 在PyQt中,QWidget是一个基本的用户界面类,用于创建可见的窗口组件。QWidget可以包含多种类型的子组件,如QPushButton、QLabel、QLi…...

APC学习记录
文章目录 APC概念APC插入、执行过程逆向分析插入过程执行过程总结 代码演示参考资料 APC概念 APC全称叫做异步过程调用,英文名是 Asynchronous Procedure Call,在进行系统调用、线程切换、中断、异常时会进行触发执行的一段代码,其中主要分为…...

前端将图片储存table表格中,页面回显
<el-table :data"tableData" v-loading"loading" style"width: 100%" height"calc(100vh - 270px)" :size"tableSize"row-dblclick"enterClick"><el-table-column prop"name" label"文档…...
[论文阅读]Ghost-free High Dynamic Range Imaging with Context-aware Transformer
多帧高动态范围成像(High Dynamic Range Imaging, HDRI/HDR)旨在通过合并多幅不同曝光程度下的低动态范围图像,生成具有更宽动态范围和更逼真细节的图像。如果这些低动态范围图像完全对齐,则可以很好地融合为HDR图像,但…...
react高阶成分(HOC)例子效果
使用React函数式组件写了一个身份验证的一个功能,示例通过高阶组件实现的一个效果展示: import React, { useState, useEffect } from react;// 定义一个高阶组件,它接受一个组件作为输入,并返回一个新的包装组件 const withAuth…...
【24种设计模式】工厂模式(Factory Pattern)
工厂模式是一种创建型设计模式,它提供了一种创建对象的方式,而无需暴露对象创建的逻辑。在这篇博客中,我们将介绍工厂模式的概念、使用场景以及示例代码。 概念 工厂模式是一种创建型设计模式,它提供了一种创建对象的方式&#…...
树——对称二叉树
leetcode题目地址 树为空树,亦为对称二叉树树非空时,仅需判断其左右子树是否对称判断左右子树对称 (1) 左右子树是否为空,有一个为空 便不对称, 都为空或都不为空 可能对称 (2) 左右子树根节点值是否相同 (3) 判断 左子树 的 左子…...

拉扎维模拟CMOS集成电路设计西交张鸿老师课程P10~13视频学习记录
--------------------------------------------------------------------------------------------------------------------------------- p10 短沟道,除了沟长调,还可能出现速度饱和问题; 但是在拉扎维这本书里面没有考虑这个问题&#…...

3.线性神经网络
#pic_center R 1 R_1 R1 R 2 R^2 R2 目录 知识框架No.1 线性回归基础优化算法一、线性回归1、买房案例2、买房模型简化3、线性模型4、神经网络5、损失函数6、训练数据7、参数学习8、显示解9、总结 二、 基础优化算法1、梯度下降2、学习率3、小批量随机梯度下降4、批量大小5、…...
python常用内置函数的介绍和使用
Python具有丰富的内置函数,这些函数是Python语言提供的基础功能。以下是一些常用的内置函数的介绍和使用: print(): 打印输出指定的内容到屏幕。 print("Hello, World!") len(): 返回给定对象的长度或元素个数。 s "Hello, World!"…...
2023辽宁省赛E
Solution 题目大致分为三个步骤 计算 P ( S ) P(S) P(S)证明删除区间连续且找到最值位置根据最值位置求出答案 接下来过程中不合法的组合数都默认为 0 0 0 第 1 步 - 求出总值 考虑 S m { 1 , 2 , ⋯ , m } S_m \{1, 2, \cdots, m\} Sm{1,2,⋯,m} , 则有 $P(S_{n2}…...
visual studio 启用C++11
用C11取决于你所使用的编译器和开发环境。以下是一些常见的编译器和相应的启用C11的方法: GCC (GNU Compiler Collection): 对于 GCC,你可以在编译时使用 -stdc11 或更高的标志来启用C11支持。例如: g -stdc11 yourfile.cpp -o yourprogramCl…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...

(一)单例模式
一、前言 单例模式属于六大创建型模式,即在软件设计过程中,主要关注创建对象的结果,并不关心创建对象的过程及细节。创建型设计模式将类对象的实例化过程进行抽象化接口设计,从而隐藏了类对象的实例是如何被创建的,封装了软件系统使用的具体对象类型。 六大创建型模式包括…...
WebRTC从入门到实践 - 零基础教程
WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC? WebRTC(Web Real-Time Communication)是一个支持网页浏览器进行实时语音…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...

Mysql故障排插与环境优化
前置知识点 最上层是一些客户端和连接服务,包含本 sock 通信和大多数jiyukehuduan/服务端工具实现的TCP/IP通信。主要完成一些简介处理、授权认证、及相关的安全方案等。在该层上引入了线程池的概念,为通过安全认证接入的客户端提供线程。同样在该层上可…...

向量几何的二元性:叉乘模长与内积投影的深层联系
在数学与物理的空间世界中,向量运算构成了理解几何结构的基石。叉乘(外积)与点积(内积)作为向量代数的两大支柱,表面上呈现出截然不同的几何意义与代数形式,却在深层次上揭示了向量间相互作用的…...
比特币:固若金汤的数字堡垒与它的四道防线
第一道防线:机密信函——无法破解的哈希加密 将每一笔比特币交易比作一封在堡垒内部传递的机密信函。 解释“哈希”(Hashing)就是一种军事级的加密术(SHA-256),能将信函内容(交易细节…...