Java代码%00截断漏洞

前段时间在渗透网站的时候遇到一个十几年前开发的网站,该网站使用的是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中运行上述代码,程序报错:

猜你喜欢

转载自www.cnblogs.com/dgjnszf/p/11685707.html
今日推荐