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 文件的功能。

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

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

相关文章

基于C/C++的非系统库自定义读写ini配置

INI文件由节、键、值组成。 节 [section] 参数 &#xff08;键值&#xff09; namevalue 这里将常用的操作方式封装成了一个dll供外部使用 // 下列 ifdef 块是创建使从 DLL 导出更简单的 // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 LIBCFG_EXPORTS // 符号…

有什么简单实用的民宿管理系统软件?民宿如何开拓盈利渠道?

民宿是近些年兴起的一种小型住宿设施&#xff0c;一般就是利用当地的一些民房改造的。民宿的装修风格一般更加具有本土风味&#xff0c;很适合拍照打卡。不过民宿由于规模比较小&#xff0c;所以员工一般也不多&#xff0c;很多民宿的入住登记都要旅客自己弄。所以有很多民宿会…

STC8模板代码

目录 STC8依赖文件库 程序结构 GPIO操作 初始化所有 使用宏配置IO口 使用函数配置IO口 UART操作 头文件 初始化 UART1 UART2 UART3 UART4 接收逻辑 UART1 UART2 UART3 UART4 发送 UART1 UART2 UART3 UART4 配置printf Timer操作 导入依赖 初始化 Time…

Apache DolphinScheduler 社区荣获 “2023 年度优秀开源技术团队“ 奖项

在开源社区日益繁荣的今天&#xff0c;我们非常荣幸地宣布&#xff1a;Apache DolphinScheduler 社区在 OSCHINA 平台的评选中荣获了“2023 年度优秀开源技术团队”奖项。这一奖项反映了我们社区在过去一年里在内容发表的深度与广度、活动运营影响力以及对开源文化的推广方面所…

AGILE-SCRUM

一个复杂的汽车ECU开发。当时开发队伍遍布全球7个国家&#xff0c;10多个地区&#xff0c;需要同时为多款车型定制不同的软件&#xff0c;头疼的地方是&#xff1a; 涉及到多方人员协调&#xff0c;多模块集成和管理不同软件团队使用的设计工具、验证工具&#xff0c;数据、工…

JS-sessionStorage、localStorage和cookie

sessionStorage 仅在浏览器当前窗口关闭之前有效,即使是刷新或者进入该窗口下的的另一个页面&#xff0c;数据也仍然存在&#xff1b;关闭浏览器或到另一个窗口&#xff0c;数据就是不存在的。 // 设置sessionStorage保存到本地&#xff0c;第一个为变量名&#xff0c;第二个是…

实验一 门电路逻辑功能及测试

一、实验目的 1.熟悉门电路逻辑功能. 2.熟悉数字电路学习机及示波器使用方法。 二、实验仪器及材料 1.双踪示波器 2.器件 74LS00 二输入端四与非门 2片 74LS20 四输人端双与非门 1片 74LS86 二输入端四异或门 1片 74LS04 六反相器 1片 …

如何在本地搭建Oracle数据库并实现无公网ip通过PLSQL工具远程连接数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 正文开始前给大家推荐个网站&#xff0c;前些天发…

基于JAVA的校园电子商城系统论文

摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所以对于信息的宣传和管理就很关键。因此校园购物信息的…

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

一、计算/设计过程 说明&#xff1a;本实验是验证性实验&#xff0c;计算预测验证结果。是设计性实验一定要从系统指标计算出元件参数过程&#xff0c;越详细越好。用公式输入法完成相关公式内容&#xff0c;不得贴手写图片。&#xff08;注意&#xff1a;从抽象公式直接得出结…

正则表达式入门与实践

文章目录 一、为什么要有正则二、正则表达式基础概念三、Pattern与Matcher类的使用(一)Pattern类的常用方法(二)Matcher类的常用方法四、常用正则规则及其含义(一)规范表示(二)数量表示(三)逻辑运算符五、String对正则表达式的支持六、实践演练(一)匹配给定文本中的…

如何预防最新的.halo勒索病毒感染您的计算机?

导言&#xff1a; 数据的安全性愈发成为人们关注的焦点&#xff0c;而.halo勒索病毒的出现给数字生活带来了严重的威胁。本文91数据恢复将深入介绍.halo勒索病毒的特征&#xff0c;提供有效的数据恢复方法&#xff0c;并分享一些预防措施&#xff0c;助您更好地保护自己的数字…

大数据云计算——Docker环境下部署Hadoop集群及运行集群案列

大数据云计算——Docker环境下部署Hadoop集群及运行集群案列 本文着重介绍了在Docker环境下部署Hadoop集群以及实际案例中的集群运行。首先&#xff0c;文章详细解释了Hadoop的基本概念和其在大数据处理中的重要性&#xff0c;以及为何选择在Docker环境下部署Hadoop集群。接着&…

12.HTML5新特性

HTML5新特性 1.介绍 它是万维网的核心语言、标准通用标记语言下的一个应用超文本标记语言&#xff08;HTML&#xff09;的第五次重大修改。用于取代 HTML4 与 XHTML 的新一代标准版本&#xff0c;所以叫HTML5 HTML5 在狭义上是指新一代的 HTML 标准&#xff0c;在广义上是指…

云原生之深入解析K8s中的微服务项目设计与实现

一、微服务项目的设计 ① 微服务设计的思想 一个单片应用程序将被构建、测试并顺利地通过这些环境。事实证明&#xff0c;一旦投资于将生产路径自动化&#xff0c;那么部署更多的应用程序似乎就不再那么可怕了。请记住&#xff0c;CD的目标之一就是让部署变得无聊&#xff0c…

【亲测可用】实在太快了!如何在Linux下5分钟快速安装MongoDB

简介 MongoDB 是一款介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系数据库当中功能最丰富&#xff0c;最像关系数据库的。他支持的数据结构非常松散&#xff0c;是类似json的bson格式&#xff0c;因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询…

如何参与开源项目

大家好&#xff0c;受卡哥邀请&#xff0c;和大家分享一下开源活动的相关经验。首先简要自我介绍一下&#xff0c;我目前在一所985研二在读&#xff0c;主要学习大数据方向&#xff0c;从去年开始参与开源活动近一年时间&#xff0c;也对多个Apache框架有所贡献。 由于学校或专…

2023最新Java获取微博cookie,可用于爬取文章(扫码登录)

目录 文章最下面含有完整main类代码&#xff0c;和完整控制层代码 一、发送请求获取图片和qrid 二、发送请求确认二维码已被正确扫描 三、携带拿到的alt&#xff0c;发送登录请求&#xff0c;获取cookie 四、main类完整方法代码 五、控制层接口完整代码 文章最下面含有完整…

IP与子网掩码之间的关系

子网掩码用于确认IP所在的网段&#xff0c;网络位与子网掩码相匹配 如果有另一台主机想要与这个IP地址进行通信&#xff0c;这时需要看两台主机的IP地址是否处于同一网段&#xff0c;处于同一网段才能相互ping通。 那么怎么判断是否处于同一网段呢&#xff1f;我们就看子网掩…

提升团队效率,防止员工飞单私单的秘诀!

在如今竞争激烈的商业环境中&#xff0c;每个企业都追求更高的销售业绩和客户满意度。然而&#xff0c;有些员工可能会利用V信等社交工具进行私下交易&#xff0c;导致公司的利益损失和客户信任的瓦解。所以&#xff0c;如何防止员工飞单私单成为了一个需要解决的问题。 在这里…