Skip to content

文件包含

en0th edited this page Jul 31, 2024 · 1 revision

简介

Java文件包含漏洞(Java File Inclusion Vulnerability)是一种Web应用程序安全漏洞,也称为目录遍历漏洞(Directory Traversal Vulnerability)或路径遍历漏洞(Path Traversal Vulnerability)。

Java文件包含漏洞的原因是Web应用程序在处理用户输入时没有正确地验证和过滤输入的数据,导致攻击者可以通过构造恶意的输入来访问包含在Web应用程序中的其他文件。攻击者可以利用此漏洞来读取或执行任意文件,包括敏感文件,如密码文件、配置文件、日志文件等,从而获得系统的控制权。

要防范Java文件包含漏洞,开发人员可以采取以下措施:

  1. 对用户输入的数据进行正确的验证和过滤,避免使用不可信的输入来动态包含文件。可以使用白名单机制来限制用户可以访问的文件和目录,避免让用户访问到Web应用程序之外的其他目录或文件。
  2. 使用相对路径而不是绝对路径来引用被包含的文件。相对路径是相对于当前JSP页面的路径,可以避免直接引用Web应用程序之外的文件。
  3. 避免在包含文件时使用外部变量,尤其是来自HTTP请求的变量。这样做容易受到攻击者的恶意操作,从而导致文件包含漏洞。
  4. 对Web应用程序中的所有输入和输出进行安全审计,及时发现和修复潜在的安全漏洞。可以使用Web应用程序安全扫描工具或漏洞扫描工具来检测Java文件包含漏洞。
  5. 更新和升级Web应用程序中使用的第三方库和框架,确保这些库和框架中没有Java文件包含漏洞。同时,及时关注安全补丁和更新,保持Web应用程序的安全性和稳定性。

总之,防范Java文件包含漏洞需要开发人员在编写Web应用程序时,加强输入验证和过滤、使用相对路径、避免使用外部变量、进行安全审计、更新第三方库和框架等多方面进行综合防范。这样才能保障Web应用程序的安全性和可靠性。

攻略

1)本地文件包含

考察:路径穿越获取文件信息

点击拉取页面底部模板

image-20240731102914920

修改filePath可以获取敏感文件:../../../WEB-INF/classes/druid.properties 这不是重点

image-20240731102822948

先回到任意文件上传的上传压缩包处,/ElectricRat/pages/unsafeupload/unzip.html

image-20240731111020023

按照之前的流程步骤,将jsp文件压缩后上传到templates目录下面。

image-20240731111123414

我们直接访问是被禁止的,但我们可以通过文件包含解析jsp文件。

../../../templates/PrintTime.jsp

image-20240731111308375

2)远程文件包含

考察:了解远程文件包含方式

参考payload:file:///C:/Windows/win.ini

image-20240731111618853

3)文件覆盖

考察:通过覆盖文件达到获取权限的目的

将恶意文件picture.pngPrintTime.jsp两个文件放到同一目录下。

<%@ page session="false" %>Now time is: <%=new java.util.Date()%>

image-20240731111807532

通过命令copy picture.png+PrintTime.jsp a.png将文件合成为图片木马。

image-20240731112007824

创建完成后点击上传。

image-20240731112553487

在下方找到已上传的文件,点击移动文件。

image-20240731112734669

输入pageFooter.jsp

image-20240731112937347

提示移动到 pages/fileinclude/templates 目录下

image-20240731112955465

此时我们再去看游览模板/ElectricRat/pages/fileinclude/beautifulPage.jsp

image-20240731113051794

我们的图片木马已经被解析了。