Web漏洞分析-文件解析及上传(下)

       随着互联网的迅速发展,网络安全问题变得日益复杂,而文件解析及上传漏洞成为攻击者们频繁攻击的热点之一。本文将深入研究文件解析及上传漏洞,通过对文件上传、Web容器IIS、命令执行、Nginx文件解析漏洞以及公猫任意文件上传等方面的细致分析,揭示这些漏洞背后的本质和攻击方式。
       文件上传漏洞一直是攻击者们渗透系统的首选方式。通过构造巧妙的上传文件,攻击者能够实施多种恶意行为,如上传包含恶意脚本的文件,从而实现远程代码执行。本文将深入探讨文件上传漏洞的工作原理、攻击场景,并通过实际案例为读者提供更直观的理解,帮助其更好地认识这一类型漏洞的威胁性。
       在网络攻击的舞台上,Web容器扮演着至关重要的角色。特别是在Windows操作系统下,IIS作为最为常见的Web服务器,存在着多种可能的文件解析和上传漏洞。本文将详细探讨这些潜在的漏洞,揭示攻击者如何善用这些漏洞渗透系统,以帮助读者更全面地了解并防范这一类威胁

五、Tomcat任意文件上传

1、Tomcat相关配置

(1)、环境讲解

Tomcat任意文件上传漏洞环境: Windows

Tomcat运行环境:JDK 8.0.

下载链接:

http://www.oracle.com/technetwork/java/javasedownloads/jdk8-downloads-2133151.html

Tomcat 7.0.79

(2)、环境配置

解压文件夹    将文件夹放到合适位置

(3)、环境变量

①、在运行Tomncat之前需要配置环境变量 环境变量1:JAVA_HOME 安装IDK8.0的目录路径在计算机->属性->高级程序设置->环境变量->系统变量中点击新建 然后输入变量名和变量值。

②、环境变量2: CATALINA HOME

变量值tomcat的目录路径     点击新建变量输入变量名和变量值

③、环境变量3: Path      点击系统变量中的Path:

(4)、环境启动

运行:cmd命令行运行tomcat文件夹下的bin文件夹中startup.bat

访问127.0.0.1:8080。有如下画面说明配置成功。

(5)、漏洞配置

①、tomcat文件夹下的/conf/web.xml文件

在114行插入以下内容:

<init-param>

<param-name>readonly</param-name>

<param-value>false</param-value>

</init-param>

②、漏洞配置

修改后如图

修改完成后重启Tomcat服务器

shutdown.bat     startup.bat

2、Tomcat任意文件上传

1)、漏洞介绍

Tomcat 远程代码执行漏洞,编号: CVE-2017-12615

将 readonly 参数设置为 false 时,即可通过 PUT 方式创建一个 JSP 文件,并可以执行任

意代码

(2)、漏洞复现

①、现在访问Tomcat服务,抓包,对包进行一些修改

为了方便查看效果,右键,选择send to repeater。

②、在repeater中发包:    提示404,请求被拦截

③、(1)、NTFS 文件流(2)、文件名相关限制(如 Windows 中文件名不能以空格结尾) 来绕过限 返回201说明

④、访问我们上传的文件,发现里面的代码已经被执行

六、上传漏洞的防御

1、上传漏洞防御原则

(1)、核心思想

确保上传的文件不会被服务器解析成可执行的脚本,进而引发偏离功能设计的意外后果。

(2)、限制文件上传类型

白名单结合黑名单: 黑名单常常会出现遗漏或者大小写绕过等问题, 所以通常采用白名单限制安全的文件类型,如

图片: .jpg,.png,.gif,.bmp

文档:.doc,.pdf,.txt

压缩包: .rar,.zip

类型限制前端JS结合后端限制。

扩展名检测,需要防范%截断或者文件名包含空格等特殊字符的绕过方式重命名用户上传的文件,杜绝上传时的文件名攻击。

对于图片上传,可以考虑对其进行二次渲染/压缩

(3)、限制上传文件大小

①、限制上传文件的大小,防止由于内存、磁盘耗尽造成的拒绝服务。

②、可以配置web server允许的最大Post大小。

③、可以在代码层面获取上传文件的大小,根据文件类型的不同进行进一步的过滤。

4)、确保上传的文件被访问正确返回

①、将文件上传目录设置为静态资源目录,防止被解析为脚本执行

②、使用代理页面隐藏文件真实路径,如/attachment/getfile.php?fileid=123

③、使用上述方式时,确保Content-Type与实际文件类型一致

④、如果文件不允许在页面展示,仅允许下载,请设置Content-disposition:attachment

5)、其他

①、确保上传的文件放在安全的路径下,必要时可将上传的文件存放于webserver之外的远程服务器。

②、确保web server版本为最新,防止由于web server漏洞造成的文件意外解析。

③、部分文件上传攻击会配合本地其他漏洞进行,所以也要保证web服务器减少其他可利用漏洞。

2、IIS6.0文件解析漏洞

1)、防御方法

升级IIS版本,IIS5.1与7.5均无此漏洞

3、Apache文件解析漏洞

1)、防御方法

不要使用AddHandler,改用SetHandler,写好正则,就不会有解析问题

<FilesMatch".+ .php$">

SetHandler application/x-httpd-php

</FilesMatch>

禁止.php.这样的文件执行,

<FilesMatch ".+ .ph(p[3457]?ltltml)\.">

Require all denied

</FilesMatch>

4、Nginx文件解析漏洞

(1)、防御方法

①、将php.ini文件中的cgi.fix_pathinfo的值设为0。这样php在解析1.php1.jpg这样的目录时,只要1.jpg不存在就会显示404.

②、将/etc/php5/fpm/pool.d/www.conf中security.limit_extensions后面的值设为.php。

5、Tomcat任意文件上传漏洞

1)、防御方法

①、Tomcat任意文件上传漏洞环境较为苛刻,将Tomcat、jdk、php更新

②、避免开启可、通过 PUT 方式创建SP 文件的功能。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代驾系统开发:驶向未来的智能交通服务

随着科技的迅速发展&#xff0c;代驾系统的开发成为改善出行体验和提升交通服务智能化的重要一环。本文将聚焦于代驾系统开发的技术创新&#xff0c;为读者呈现其中涉及的一些令人振奋的技术代码。 1. 区块链技术的运用&#xff1a; 区块链技术被引入代驾系统&#xff0c;可…

尚海整装装修流程 揭秘装修行业的高标准服务

装修房子其实比较复杂&#xff0c;在这一复杂的过程中&#xff0c;一个合理且严密的装修流程显得尤为关键。错误的步骤安排不仅会造成资源的浪费&#xff0c;更有可能让人产生“弃屋重装”的冲动。尚海整装以精准的流程规划确保了装修的每一步都有序进行&#xff0c;轻松搞定装…

人工智能与VR技术

人工智能与虚拟现实技术&#xff08;VR&#xff09;的结合是当今科技领域中备受瞩目的话题。两者的结合不仅在娱乐、教育、医疗等领域展现出了巨大的潜力&#xff0c;而且在未来的发展趋势中也将具有重要意义。本文将从技术融合、应用场景和未来发展等方面探讨人工智能与虚拟现…

激荡思享 驱动增长 | 湾数联·湾董会走进竹云

12月12日&#xff0c;由湾区数字科技产业联盟&#xff08;GBADA&#xff09;、湾盟产业创新服务中心&#xff08;GBAIC&#xff09;、深圳竹云科技股份有限公司联合主办的“湾数联湾董会”第一期在深圳南山区创智云城圆满举办。本期湾董会以“竹云IDaaS数字身份为企业数字化转型…

select简单使用

语法 先大致看一下&#xff0c;后面都会讲&#xff0c;distinct用来去重&#xff0c;from 指明表名&#xff0c;where语句则用来控制查询条件&#xff0c;order by则用来对结果进行升序/降序排序&#xff0c;limit则用来分页。 SELECT [DISTINCT] {* | {column [, column] ..…

mysqlsh导入json,最终还得靠navicat导入json

工作需要将一个巨大的10G的json导入mysql数据库。 看到mysql官方有对json导入的支持。 如下&#xff1a; MySQL :: Import JSON to MySQL made easy with the MySQL Shell $ mysqlsh rootlocalhost:33300/test --import /path_to_file/zips.json Creating a session to root…

Linux——进程地址空间与进程控制

进程地址空间与进程控制 文章目录 进程地址空间与进程控制1. 进程地址空间1.1 进程地址空间的引入1.1 进程地址空间的特点1.2 页表1.3 C/C的地址1.4 进程地址空间 页表的优势 2. 进程控制2.1 进程创建2.1.1 写时拷贝 2.2 进程终止2.2.1 进程退出码2.2.2 异常信号码2.2.3 errno…

阿里巴巴旗下的 AI 平台 AIHub 提供多种免费的图片 AI 在线工具

顽兔抠图&#xff1a;一键去除图像背景的 AI 工具&#xff0c;支持图片和视频。顽兔抠图 淘宝网(Taobao.com)作为专业的购物网站拥有全球时尚前沿的消费者购物集市,100%认证网上商城及超值二手商品区&#xff0c;同时购物安全&#xff0c;产品丰富&#xff0c;应有尽有,任你选购…

解决固定资产盘点问题,易点易动来帮忙!

固定资产盘点是企业管理中不可或缺的环节&#xff0c;然而&#xff0c;很多企业在固定资产盘点方面面临一系列问题&#xff1a; 盘点过程繁琐&#xff1a;传统的手动盘点方式需要耗费大量人力和时间&#xff0c;容易出现疏漏和错误&#xff0c;效率低下&#xff1b; 数据记录不…

uniapp 之 图片 视频 文件上传

<view class"" style"padding: 24rpx 0"><text>相关资料 <text class"fs-26 color-666">&#xff08;图片、视频、文档不超过9个&#xff09;</text> </text><view class"flex align-center" style&…

安全算法(二):共享密钥加密、公开密钥加密、混合加密和迪菲-赫尔曼密钥交换

安全算法&#xff08;二&#xff09;&#xff1a;共享密钥加密、公开密钥加密、混合加密和迪菲-赫尔曼密钥交换 本章介绍了共享密钥加密、公开密钥加密&#xff0c;和两种加密方法混合使用的混合加密方法&#xff1b;最后介绍了迪菲-赫尔曼密钥交换。 加密数据的方法可以分为…

Day09 Liunx高级系统设计11-数据库1

MySQL 简介 数据库DB 数据库&#xff08; DataBase &#xff0c; DB &#xff09;从本质上讲就是一个文件系统&#xff0c;它能够将数据有组织地集合在一起&#xff0c;按照一定的规则长期存储到计算机的磁盘中&#xff0c;并且能够供多个用户共享和使用&#xff0c;同时&…

Leetcode—459.重复的子字符串【简单】

2023每日刷题&#xff08;五十九&#xff09; Leetcode—459.重复的子字符串 算法思想 巧解的算法思想 实现代码 从第一个位置开始到s.size()之前&#xff0c;看s字符串是否是ss的子串 class Solution { public:bool repeatedSubstringPattern(string s) {return (s s).fin…

西南科技大学数字电子技术实验七(4行串行累加器设计及FPGA实现)FPGA部分

一、实验目的 1、掌握基于Verilog语言的diamond工具设计全流程。 2、熟悉、应用Verilog HDL描述数字电路。 3、掌握Verilog HDL的组合和时序逻辑电路的设计方法。 4、掌握“小脚丫”开发板的使用方法。 二、实验原理 三、程序清单&#xff08;每条语句必须包括注释或在开发…

【产品应用】一体化伺服电机在TO全自动封焊机中的应用

随着科技的飞速发展&#xff0c;自动化设备在各行各业中的应用越来越广泛。在电子制造领域&#xff0c;封焊机是关键设备之一&#xff0c;其性能直接影响产品的质量和产量。近年来&#xff0c;一体化伺服电机在TO全自动封焊机中的应用逐渐受到关注。本文将详细介绍一体化伺服电…

用Rust帮Python加加速

背景 长期以来,Python由于易上手,有GC且生态强大等特点被广泛使用,可是渐渐的人们也发现了它的不足,解释型语言的运行速度终究比不过编译型,况且由于Python设计时的动态数据类型一切皆对象(内存都分配在堆上)等思想,也导致了运行速度缓慢. 随着实时性要求的不断提升,在一些计…

Windows下使用CMake编译lua

Lua 是一个功能强大、高效、轻量级、可嵌入的脚本语言。它支持程序编程、面向对象程序设计、函数式编程、数据驱动编程和数据描述。 Lua的官方网站上只提供了源码&#xff0c;需要使用Make进行编译&#xff0c;具体的编译方法为 curl -R -O http://www.lua.org/ftp/lua-5.4.6.…

Android取消深色适配

从Android10&#xff08;API 29&#xff09;开始&#xff0c;在原有的主题适配的基础上&#xff0c;Google开始提供了Force Dark机制&#xff0c;在系统底层直接对颜色和图片进行转换处理&#xff0c;原生支持深色模式。当系统设置深色主题背景或者进入省电模式情况下会进入深色…

【docker】docker入门与安装

Docker 一、入门 Docker的主要目标是&#xff1a;Build, Ship and Run Any App, Anywhere&#xff0c;也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理&#xff0c;使用户的APP及其运行环境能做到一次镜像,处处运行。 Docker运行速度快的原因 Docker有比虚拟…

使用ROS模板基于ECS和RDS创建WordPress环境

本文教程介绍如何使用ROS模板基于ECS和RDS&#xff08;Relational Database Service&#xff09;创建WordPress环境。 前提条件 如果您是首次使用ROS&#xff0c;必须先开通ROS服务。ROS服务免费&#xff0c;开通服务不会产生任何费用。 背景信息 WordPress是使用PHP语言开…