复现环境
win2003
Tomcat/7.0.75
复现过程
对Tomcat的server.xml文件增加如下代码
<Context path="/test" docBase="C:\test\examples" debug="1" reloadable="true">
<Resources className="org.apache.naming.resources.VirtualDirContext" extraResourcePaths="/=C:\test\leaked" />
</Context>
意思就是,当别人访问/test路径时,会被映射到物理路径C:\test\examples。当/examples路径里面没有你要访问的文件时,系统就会去C:\test\leaked进行查找。
这个时候当你访问“/test/test.jsp.”的时候,就会显示test.jsp的源码。
这个漏洞还是有点鸡肋的,比如你要访问test.jsp。你在jsp后面加.之后就会访问leaked目录下的test.jsp的文件且系统会返回这个文件的源代码
访问下http://192.168.61.134:8080/test/test.jsp
访问下http://192.168.61.134:8080/test/test.jsp.
不仅仅是. 像是::$DATA 和%20 都是可以的
总结
漏洞影响范围:7.0.0 to 7.0.80
防御方法:在conf/server.xml关闭VirtualDirContex参数