【网络安全】文件上传漏洞及中国蚁剑安装
文件上传漏洞
- 描述
- 中国蚁剑安装
- 1. 官网下载源码和加载器
- 2.解压至同一目录并
- 3.安装
- 4.可能会出现的错误
- 文件上传过程
- 必要条件
- 代码示例
- dvwa靶场攻击示例
- 1.书写一句话密码进行上传
- 2. 拼接上传地址
- 3.使用中国蚁剑链接webshell
- 前端js绕过方式
- 服务端校验请求头中content-type
- 黑名单绕过
- 1.修改后缀名为黑名单以外的后缀名
- 2.htaccess重写解析绕过上传
- 3.大小写绕过
- 4.空格绕过上传
- 5.利用windows系统特性绕过上传(添加.)
- 6.ntfs交换数据量::$DARA绕过上传
- 7.利用windaows环境叠加特性绕过
- 8.双写后缀名绕过
- 白名单绕过
- 1.目录可控%00截断绕过上传
- 2.文件头检测绕过
- 3.绕过图片二次渲染上传
- 其他文件上传漏洞
- 文件上传漏洞防御方法
描述
文件上传漏洞是指由于程序员未对上传的文件进行严格的验证和过滤,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。如常见的头像上传,图片上传,oa 办公文件上传,媒体上传,允许用户上传文件,如果过滤不严格,恶意用户利用文件上传漏洞,上传有害的可以执行脚本文件到服务器中,可以获取服务器的权限,或进一步危害服务器。
中国蚁剑安装
1. 官网下载源码和加载器
GitHub地址:https://github.com/AntSwordProject


》加载器咱们下载win64版本(往下滑找到下载地址)

2.解压至同一目录并

3.安装
》点击antSword.exe,进行初始化

》初始化时选择antSword_masster文件夹

4.可能会出现的错误

原因是文件夹目录选择错了,一定要选择安装在antSword_masster文件夹
文件上传过程
必要条件
- 存在上传点
- 可上传
- 可执行且可解析
- 可访问上传的脚本文件
代码示例

dvwa靶场攻击示例
1.书写一句话密码进行上传


2. 拼接上传地址
》1. 拼接为启动目录

》2. 往后依次进行拼接

未返回404 可行
3.使用中国蚁剑链接webshell


成功拿到shell权限,入侵成功
前端js绕过方式
方法1:上传图片(jpg、png等)文件后,使用bp抓包修改文件后缀为php文件
方法2:前端F12模式删除相关校验代码
服务端校验请求头中content-type
把bp抓包后,修改content-type为image/jpeg或image/png
黑名单绕过
1.修改后缀名为黑名单以外的后缀名
》上传黑名单以外的后缀名即可。
在iis里asp禁止上传了,可以上传asacercdx这些后缀,如在网站里允许.net
执行可以上传ashx代替aspx。如果网站可以执行这些脚本,通过上传后门即可
获取webshell。
在不同的中间件中有特殊的情况,如果在apache可以开启application/x-httpd-php
在AddTypeapplication/x-httpd-php.php.phtml.php3
后缀名为phtml、php3均被解析成php有的apache版本默认就会开启。
上传目标中间件可支持的环境的语言脚本即可,如.phtml、php3。
2.htaccess重写解析绕过上传
前提:apache开启rewrite重写模块
1.上传含有webshell的txt文件,修改后缀为.jpg文件
2.上传.htaccess文件到网站中内容如下:
<FilesMatch"jpg">
SetHandlerapplication/x-httpd-php
</FilesMatch> #意思为把jpg文件识别为php文件
3.大小写绕过
修改后缀名部分大写或小写后上传
或者使用bp抓包后进行修改大小写
4.空格绕过上传
bp抓包后在上传文件末尾输入空格进行上传
5.利用windows系统特性绕过上传(添加.)
bp抓包后上传文件末尾输入.进行绕过
原理:windows中文后缀名.系统会自动忽略,直接可以执行
6.ntfs交换数据量::$DARA绕过上传
前提:win
bp抓包后修改后缀名为php::$DATA上传即可
7.利用windaows环境叠加特性绕过
1.bp抓包后修改文件后缀为(webshell).php:.jpg,此时在服务器中会生成一个xxx.php空文件
2.再次修改文件后缀为.>>>,会把本文件中的文件写入到xxx.php文件中
匹配规则:
“” = .
>=? 匹配一个字符 # >>>匹配为php
<=*匹配多个字符
8.双写后缀名绕过
bp抓包后修改php为phphpp,此时会过滤掉一个php
白名单绕过
1.目录可控%00截断绕过上传
前提:
1.请求报文中存在保存的目录
2.gpc为关闭状态
3.php版本小于5.3.4
原理:bp抓包后修改后缀名为php%00.jpg,相当于%00后均在上传过程中不识别,但服务器会识别所以可以造成上传绕过
2.文件头检测绕过
前提:使用getReailFileType检测文件开头是否是jpg、png、gif文件头
常见的图片文件头:
JPEG(jpg),文件头:FFD8FF
PNG(png),文件头:89504E47
GIF(gif),文件头:47494638
TIFF(tif),文件头:49492A00
方法:使用图片和一句话木马合成一个文件进行上传
copy xx.png/b+xxx.php shell.php #生成shell.png文件进行上传
3.绕过图片二次渲染上传
应用场景:上传webshell图片后,网站为了符合要求会二次渲染照片(调整图片大小分辨率等)
方法:使用hxd文件(16进制)打开渲染前和渲染后的照片,对比那些在渲染后未改变,未改变部分修改为webshell木马

其他文件上传漏洞
nginx0.83----- 1.jpg%00php 解析为1.php
apahce1x或者2x------当apache遇见不认识的后缀名,会从后向前解析例如1.php.rar不认识rar就向前解析,直到知道它认识的后缀名。
phpcgi漏洞(nginxiis7或者以上)上传图片后1.jpg。访问1.jpg/1.php也会解析成php。
ApacheHTTPD换行解析漏洞(CVE-2017-15715)
apache通过mod_php来运行脚本,其2.4.0-2.4.29中存在apache换行解析漏洞,在解析php时xxx.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。
文件上传漏洞防御方法
服务器端使用白名单防御,修复web中间件的漏洞,禁止客户端存在可控参数,存放文件目录禁止脚本执行,限制后缀名一定要设置图片格式jpg、gif、png文件名随机的,不可预测。
相关文章:
【网络安全】文件上传漏洞及中国蚁剑安装
文件上传漏洞描述中国蚁剑安装1. 官网下载源码和加载器2.解压至同一目录并3.安装4.可能会出现的错误文件上传过程必要条件代码示例dvwa靶场攻击示例1.书写一句话密码进行上传2. 拼接上传地址3.使用中国蚁剑链接webshell前端js绕过方式服务端校验请求头中content-type黑名单绕过…...
[Java]面向对象高级篇
文章目录包装类包装类层次结构基本类型包装类特殊包装类数组一维数组多维数组可变长参数字符串String类StringBuilder类内部类成员内部类静态内部类局部内部类匿名内部类Lambda表达式方法引用异常机制自定义异常抛出异常异常的处理常用工具类数学工具类随机数数组工具类包装类 …...
苹果应用商店上架流程
上架过程分七个步骤,按步骤一步步来。 仔细看这个流程,少走很多弯路,不用一步步去试错,新手也能快速掌握上架流程。 1、创建APP身份证(App IDs) 2、申请iOS发布证书 3、申请iOS发布描述文件 4、上传ios证…...
基于Eclipse下使用arm gcc开发GD32调用printf
系列目录 第一章 xxx 目录 系列目录 文章目录 文章目录 系列文章目录前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结前言 开发环境:Eclipse代替Keil,IAR 开发平台:GD32 开发编译器:arm-none-eabi- …...
5个降低云成本并提高IT运营效率的优先事项
在过去的十年里,公司在公有云和私有云基础设施上构建了大量的计算工作负载,或者将工作负载转移到云端。Gartner 预测,到2023年,全球终端用户在公共云服务上的支出将达到5910亿美元,比2021年增长43%。这是一个显著的增长…...
95-拥塞控制
拥塞控制1.什么是拥塞控制2.拥塞控制的方法(1)慢启动和拥塞避免(2)快速重传和快速恢复1.什么是拥塞控制 在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超…...
Linux常见操作命令【二】
一、Vi 编辑器 Vi 编辑器存在三者模式:命令、末行、编辑 1.1 命令模式 输入 vi 默认进入命令模式 输入n或者nG:定位到某一行行首 输入G:跳到文件最后一行行首 输入hjkl:表示左下上右移动光标(方向键也可以…...
Linux驱动中断和定时器
目录 中断 顶半部/底半部机制 软中断: Tasklet: 工作队列: 定时器 中断 中断是正在执行的程序被另一个程序打断,去执行另一个程序的处理函数,当执行完再返回执行被打断的程序。分为内中断(异常)和外中断(硬件中断)。 当cp…...
表达式和函数
表达式: 将数字和运算符连接起来的组合称为表达式。我们可以将数字称为操作数,单个操作数也可以被看作是一个表达式。 操作数:常数,列名,函数调用,其他表达式 运算符:算数运算符,…...
C#基础复习
目录 格式字符串 多重标记和值 预定义类型 用户定义类型 值类型和引用类型 存储引用类型对象的成员 C#类型的分类 静态类型和dynamic关键字 类的基本概念 类成员的类型 为数据分配内存 访问修饰符 格式字符串 多重标记和值 C#程序就是一组类型声明,学习C#就是学习…...
Windows服务器使用代码SSH免密登录并执行脚本
服务器操作系统 Window Server 2016 1、Windows服务器安装OpenSSH 有多种方式,本文介绍一种方式 下载页: https://github.com/PowerShell/Win32-OpenSSH/releases 在下载页下载文件OpenSSH-Win64.zip 本次实验解压至 D:\OpenSSH-Win64\OpenSSH-Win6…...
(Deep Learning)交叉验证(Cross Validation)
交叉验证(Cross Validation) 交叉验证(Cross Validation)是一种评估模型泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。 交叉验证不但可以解决数据集中数据量不够大的问题,也可以…...
通俗举例讲解动态链接】静态链接
参考动态链接 - 知乎 加上我自己的理解,比较好懂,但可能在细节方面有偏差,但总体是一致的 静态链接的背景 静态链接使得不同的程序开发者和部门能够相对独立的开发和测试自己的程序模块,从某种意义上来讲大大促进了程序开发的效率…...
K8S部署常见问题归纳
目录一. 常用错误发现手段二、错误问题1. token 过期2. 时间同步问题3. docker Cgroup Driver 不是systemd4. Failed to create cgroup(未验证)子节点误执行kubeadm reset一. 常用错误发现手段 我们在部署经常看到的提示是: [kubelet-check] It seems …...
Redis高可用
最近离职后还没开始找工作,在找工作前去学习一下Redis高可用方案。 目录Redis高可用高可用的概念实现方式持久化主从复制简单结构优化结构优缺点哨兵模式(Sentinel)哨兵进程的作用自动故障迁移(Automatic failover)优缺点集群优缺点Redis高可…...
Hyperledger Fabric 2.2版本环境搭建
前言 部署环境: CentOS7.9 提前安装好以下工具 git客户端golangdockerdocker-composecurl工具 以下是个人使用的版本 git: 2.39.2golang: 1.18.6docker: 23.0.3dockkekr-compose: v2.17.2curl: 7.29.0 官方文档参考链接:跳转链接,不同的版本对应的官…...
macOS Monterey 12.6.5 (21G531) Boot ISO 原版可引导镜像
本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Windows 和 Linux 中创建可引导介质。 2023 年 4 月 10 日(北京…...
【软件设计师13】数据库设计
数据库设计 1. 数据库设计过程 2. E-R模型 3. E-R图向关系模型的转换 例如一对一联系,可以将联系单独做为关系模式,也可以存放到任意一个实体中 而一对多要合并只能合并到多这边,不能存放到1 多对多则联系必须单独转成一个关系模式 4. 案…...
SpringMVC的全注解开发
文章目录一、spring-mvc.xml 中组件转化为注解形式二、DispatcherServlet加载核心配置类三、消除web.xml一、spring-mvc.xml 中组件转化为注解形式 跟之前全注解开发思路一致, xml配置文件使用核心配置类替代,xml中的标签使用对应的注解替代 <!-- 组件…...
C# | 导出DataGridView中的数据到Excel、CSV、TXT
C# | 导出DataGridView中的数据到Excel、CSV、TXT 文章目录C# | 导出DataGridView中的数据到Excel、CSV、TXT前言DataGridView数据转存DataTableDataTable转Excel方法一、使用Microsoft.Office.Interop.Excel方法二、使用EPPlus库方法三、使用NPOI库DataTable转CSVDataTable转T…...
Windows系统下Tesseract OCR与Python结合实战:从安装到文字识别应用
1. Windows系统下Tesseract OCR的安装与配置 第一次接触OCR技术时,我被它的神奇能力震撼到了——居然能让计算机读懂图片里的文字!作为一款开源OCR引擎,Tesseract在文字识别领域已经默默耕耘了十几年。记得我刚开始用的时候还是3.x版本&#…...
ThreadLocal内存泄漏警告!多线程MDC使用必须知道的3个避坑点
ThreadLocal内存泄漏实战:多线程MDC避坑指南与深度解决方案 当你在凌晨三点被报警电话惊醒,发现生产环境因为内存溢出而崩溃时,排查结果指向一个看似无害的MDC日志组件——这种场景在过去两年里我已经经历了三次。ThreadLocal作为MDC的底层实…...
OpenClaw多模态飞书助手:Qwen3-VL:30B实战指南
OpenClaw多模态飞书助手:Qwen3-VL:30B实战指南 1. 为什么我们需要多模态飞书助手? 去年夏天,我负责一个跨部门协作项目时,每天要处理上百条飞书消息和几十份文档。最头疼的是同事发来的截图——有时是数据图表,有时是…...
从《巴伦周刊》谈起,我们该如何保住 SRE 的直觉?
大多数 AI 依然停留在执行层面,它们只能在 Demo 里写写脚本。一旦丢进真实的生产集群,面对复杂的资源依赖和权限限制,它们很难像人类专家那样,给出真正能拍板的建议。最近,《巴伦周刊》对 Chaterm 的报道引起了我的注意…...
nli-distilroberta-base代码实例:Python调用DistilRoBERTa实现Entailment识别
nli-distilroberta-base代码实例:Python调用DistilRoBERTa实现Entailment识别 1. 项目概述 自然语言推理(Natural Language Inference, NLI)是自然语言处理中的一项重要任务,用于判断两个句子之间的逻辑关系。nli-distilroberta-base是基于DistilRoBER…...
DSP28335串口调试:从printf重定向到稳定数据输出的实战解析
1. 为什么需要printf重定向? 在DSP28335开发过程中,printf函数是我们最常用的调试工具之一。想象一下,当你需要实时查看算法运行状态、变量数值或者系统日志时,如果每次都要停下来用调试器查看,那效率得多低啊…...
从抖音Logo到冰封效果:Stable Diffusion WebUI创意图标生成全攻略
从抖音Logo到冰封效果:Stable Diffusion WebUI创意图标生成全攻略 在数字设计领域,AI绘图工具正掀起一场创意革命。Stable Diffusion WebUI作为开源图像生成模型的代表,其强大的风格迁移能力让普通设计师也能轻松实现专业级视觉特效。本文将带…...
第三章 Qt 编译及安装
1. Qt 编译安装 2 Qt 在线安装 在线安装包的下载地址: https://download.qt.io/official_releases/online_installers/ Qt对不同的平台提供了不同版本的安装包,可根据实际情况自行下载安装,本文档使用qt-online-installer-windows-x64-on…...
从“高危论文”到“安心提交”:百考通双降技术,为真实思考护航
在一个人工智能可以生成万字论文的时代,最讽刺的现实不是机器冒充人类, 而是人类因写得太像“人写的论文”,被当作机器。 2026年,无数高校学子正陷入一场无声的困境: 你没用AI,却因逻辑清晰被标记…...
Edge浏览器专属:B站直播实时字幕插件开发全记录(附源码下载)
Edge浏览器实现B站直播实时字幕的技术解析与实战 作为一名长期关注Web语音技术的开发者,我最近在Edge浏览器上成功实现了一个B站直播实时字幕插件。这个项目的核心价值在于解决了无字幕直播场景下的信息获取难题——根据用户反馈,超过68%的观众会在没有字…...
