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

相关推荐
檀越剑指大厂6 分钟前
【Python系列】异步 Web 服务器
服务器·前端·python
我是Superman丶8 分钟前
【前端】js vue 屏蔽BackSpace键删除键导致页面后退的方法
开发语言·前端·javascript
楚疏笃8 分钟前
linux安全管理-账号口令
linux·服务器·安全
Hello Dam10 分钟前
基于 Spring Boot 实现图片的服务器本地存储及前端回显
服务器·前端·spring boot
LightOfNight10 分钟前
Redis设计与实现第14章 -- 服务器 总结(命令执行器 serverCron函数 初始化)
服务器·数据库·redis·分布式·后端·缓存·中间件
沐多10 分钟前
linux实时操作系统xenomai看门狗(watchdog)机制及作用介绍
linux·xenomai·实时linux
孤邑11 分钟前
【Linux】网络通信
linux·服务器·网络·笔记·学习
小仓桑11 分钟前
利用 Vue 组合式 API 与 requestAnimationFrame 优化大量元素渲染
前端·javascript·vue.js
Hacker_xingchen12 分钟前
Web 学习笔记 - 网络安全
前端·笔记·学习
天海奈奈12 分钟前
前端应用界面的展示与优化(记录)
前端