【网络安全】文件上传漏洞及中国蚁剑安装

news2024/11/25 10:29:37

文件上传漏洞

    • 描述
    • 中国蚁剑安装
      • 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文件夹

文件上传过程

选择发送的文件
服务器接收
网站程序判断
保存为临时文件
移动到指定目录

必要条件

  1. 存在上传点
  2. 可上传
  3. 可执行且可解析
  4. 可访问上传的脚本文件

代码示例

在这里插入图片描述

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文件名随机的,不可预测。

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

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

相关文章

《花雕学AI》22:一种让AI模拟虚拟角色方法,足以更多创造力的ChatGPT角色扮演

一、什么是ChatGPT的角色扮演&#xff1f; ChatGPT是一种基于GPT-3模型的人机对话技术&#xff0c;它可以实现自然语言和计算机之间的交互。ChatGPT的角色扮演指的是让模型扮演一个虚构的人物&#xff0c;与用户进行设定好的对话。 例如&#xff0c;您可以让ChatGPT扮演一个关…

一文打通锁升级(偏向锁,轻量级锁,重量级锁)

前置知识&#xff1a;synchronized 在JavaSE1.6以前&#xff0c;synchronized都被称为重量级锁。但是在JavaSE1.6的时候&#xff0c;对synchronized进行了优化&#xff0c;引入了偏向锁和轻量级锁&#xff0c;以及锁的存储结构和升级过程&#xff0c;减少了获取锁和释放锁的性能…

Hbase1.1:Hbase官网、Hbase定义、Habse结构、Hbase依赖框架、Hbase整合框架

这里写自定义目录标题Hbase官网Hbase特点&#xff1a;大Hbase定义Habse结构Hbase依赖框架hadoopHbase整合框架PhoenixHiveHbase官网 Hbase官网地址 HBase是Hadoop database&#xff0c;一个分布式、可扩展的大数据存储。 当您需要对大数据进行随机、实时读/写访问时&#xf…

记录网关zuul处理跨域/XSS问题

一&#xff0c;疑问 1.之前遇到跨域问题是在NG中解决的&#xff0c;添加跨域请求头和域名配置。那么与网关处理跨域问题关系是什么&#xff0c;NG处理了&#xff0c;为什么还需要在网关中处理 二&#xff0c;前置知识 zuul概念与原理 zuul 的概念和原理 - 知乎 Zuul工作原…

接触过的第一台电脑-90年代的x86与如今的树莓派

#勤写标兵挑战赛#最早接触电脑是在幼儿园&#xff0c;那时候电脑下象棋都要输入命令行的。后来小学时候有了电脑课&#xff0c;要穿鞋套的。满满的回忆。那个时代电子产品更新很慢的&#xff0c;一台电脑可以用5年&#xff0c;286-386-486-586。486电脑的特点是&#xff1a;处理…

python数据分析-matplotlib散点图-条形图的绘制以及完整方法归纳02

matplotlib的基本使用02一.散点图的绘制二.散点图绘图步骤及案例解析1.导入模块2.设置散点图所有字符的字体样式3.编写主体代码4.主题代码解析5.图形展示三.条形图的绘制四.条形图案例展示1.导入模块五.绘制条形图完整代码六.条形图展示七.多个条形图展示1.结果展示八.总结一.散…

工业交换机与商业交换机区别对比

摘要&#xff1a;工业交换机和商业交换机在功能方面差距较小&#xff0c;性能方面差别很大。最主要的差别是在对各类环境的适应性上&#xff0c;包括在温度、湿度、盐雾环境、振动环境、恶劣电磁干扰环境、海拔等各类环境下稳定可靠提供功能服务的能力。当然工业交换机在一些告…

Word控件Spire.Doc for .net 功能详解

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

继续Stable-Diffusion WEBUI方方面面研究(内容索引)

文章目录&#xff08;零&#xff09;前言&#xff08;一&#xff09;绘图&#xff08;1.1&#xff09;模型&#xff08;1.1.1&#xff09;基础模型&#xff08;Stable-diffusion模型&#xff09;&#xff08;1.1.2&#xff09;人物模型&#xff08;LoRA模型&#xff09;&#x…

4.4、网络模型

4.4、网络模型1.OSI七层参考模型2.TCP/IP四层模型①简介②四层介绍1.OSI七层参考模型 七层模型&#xff0c;亦称 OSI&#xff08;Open System Interconnection&#xff09;参考模型&#xff0c;即开放式系统互联。参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一…

实验1 MATLAB环境与运算基础

实验一一、实验的目的与要求二、实验原理三、实验仪器四、实验内容与步骤五、实验分析与总结一、实验的目的与要求 1、掌握 MATLAB环境与基本操作&#xff1b; 2、掌握 MATLAB常见数据类型的创建、表示和引用&#xff1b; 3、熟悉 MATLAB数据类型的各种运算与常用函数&#xf…

一篇文章让你搞懂TypeScript中的typeof()、keyof()是什么意思

TypeScript中的typeof&#xff08;&#xff09;、keyof&#xff08;&#xff09;是什么意思&#xff1f;知识回调&#xff08;不懂就看这儿&#xff01;&#xff09;场景复现核心干货&#x1f447;&#x1f447;&#x1f447;举例引入字面量类型&#xff08;literal types&…

AC7811电机驱动方案—电路分析

目录 电源树 12V转5V 输出电压设计 电感的选取 欠压锁定 电容的选取 PCB布局 5V转3.3V 输出噪声 外部反向电压保护 接口电路设计 USB转串口 JTAG 驱动电路 驱动桥电路 采样回路设计 电源树 12V转5V 使用了MPQ4420作为电压转换芯片。 芯片手册经典应用 输出电…

Kafka——概述、安装及命令行操作

文章目录一、概述1.1、定义1.2、如何运作&#xff1f;1.3、传统消息队列的应用场景1.4、消息队列的两种模式1.5、Kafka的基础架构二、安装&#xff08;需要安装zookeeper&#xff09;三、常用命令行操作3.1、主题命令行操作3.2、生产者命令行操作3.3、消费者命令行操作一、概述…

Python操作MySQL就是这么简单

Python操作MySQL就是这么简单下载MySQL 8.0安装MySQL 8.0步骤2&#xff1a;选择安装类型步骤3&#xff1a;选择安装位置步骤4&#xff1a;配置MySQL 8.0步骤5&#xff1a;安装MySQL 8.0步骤6&#xff1a;完成安装启动MySQL 8.0MySQL 8.0的常用命令python的 pymysql库操作方法安…

【C++】哈希的应用 -- 位图

文章目录一、位图的引入二、位图的实现三、bitset四、位图的应用五、哈希切割一、位图的引入 我们通过一道面试题来引入位图&#xff1a; 给定40亿个不重复的无符号整数&#xff0c;且没排过序&#xff0c;现在给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数…

ChatGPT想干掉测试人员,做梦去吧

很多人都发现ChatGPT可以做一些代码相关的工作&#xff0c;不仅可以写一些测试用例和自动化脚本&#xff0c;还可以做一定量的调优&#xff0c;于是就开始担忧起来&#xff0c;到哪天我的测试工作会不会被ChatGPT这个工具给取代了&#xff1f; 1. ChatGPT目前对哪些东西会有冲击…

Java:Arrays类

1、Arrays是啥&#xff1f; 数组操作工具类&#xff0c;专门用于操作数组元素的。 2.Arrays类的常用API 方法说明public static String toString(类型[] a)对数组进行排序public static void sort(类型[] a)对数组进行默认升序排序public static <T> void sort(类型[]…

图像分割——交叉熵损失

一、前言 写这篇博客的目的主要有两点&#xff0c;首先一点就是&#xff0c;以为对于交叉熵学过就会了&#xff0c;当初笔记也没有详细写过&#xff0c;但今天看论文发现里面的公式没有看懂才发现自己了解的还不够&#xff0c;平时用也是直接用的框架&#xff0c;原来一直认为会…

Java基础--数据结构

阅读目录 目录 数据结构 Java 集合框架 List Set Map 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类&#xff1a; 枚举&#xff08;Enumeration&#xff09;、位集合&#xff08;BitSet&#xff09;、向量&#xff08;Vector&a…