我有一个在 Tomcat 上运行的 Java Web 应用程序,我应该在该应用程序上利用路径遍历漏洞。有一个部分(在应用程序中),我可以在其中上传 .zip 文件,该文件会在服务器的 /tmp
目录中提取。 .zip
文件的内容没有被检查,所以基本上我可以在其中放入任何内容。我尝试将 .jsp
文件放入其中,它可以完美提取。我的问题是我不知道如何作为“普通”用户从浏览器访问此文件。我尝试在地址栏中输入 ../../../tmp/somepage.jsp
,但 Tomcat 只是删除 ../
并给我 http://localhost:8080/tmp/
资源不可用。
理想的情况是,我可以以某种方式在 somepage.jsp
的路径中对 ../进行编码,以便将其提取到 Web 应用程序的 web riot 目录中。这可能吗?是否有任何转义序列在提取后会转换为 ../
?
任何想法都将受到高度赞赏。
注意:这是安全类(class)中的一个学校项目,我应该在其中找到漏洞并纠正它们。无意伤害任何人...
最佳答案
对反对票表示抱歉。安全非常重要,应该进行教导。
是否传入要使用的文件名?
服务器所做的检查可能类似于如果位置以“/tmp”开头,则允许它
。那么你想要做的是传递`/tmp/../home/webapp/"?
另一个想法是看看你是否可以制作一个 zip 文件,从而将内容向上移动 - 就像如果你在 zip 内的文件名中设置“../”,会发生什么?如果您的 zip 工具不允许,您可能需要手动修改内容。
关于security - 利用和纠正路径遍历漏洞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504327/