Java代码%00截断漏洞

ⅰ亾dé卋堺 提交于 2019-12-01 12:31:09

前段时间在渗透网站的时候遇到一个十几年前开发的网站,该网站使用的是JSP和Servlet混合开发,后端数据库为MySQL 4.x版本,可以说这个网站的运行时间相当的长了。

这个网站存在一处任意文件下载漏洞,后端代码将前端URL传入的路径进行拼接从而组成完整的文件路径。但是最终拼接的文件路径总是以“*.doc”结尾,即使进行目录跳转(../)也只能访问*.doc文件。

我尝试%00截断,结果成功读到其他类型的文件,说明该网站存在%00截断漏洞。最终拿到WebShell后审阅网站源代码并在本地多次模拟发现:%00截断漏洞是Java语言自身的问题(与操作系统无关),此漏洞只存在于低版本的Java(如:Java 1.4),高版本的Java(如:Java 1.7)已经修复这个问题。

本地测试

在这段代码中filePath变量表示文件路径,我特意在路径中加入ASCII码的0x00字符进行截断。

在Java 1.4中运行上述代码,可以读取到password.txt文件。

在Java 1.7中运行上述代码,程序报错:

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!