如何解决 Apache Tomcat 目录遍历漏洞
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决 Apache Tomcat 目录遍历漏洞相关的知识,希望对你有一定的参考价值。
APACHE 的Options Indexes MultiViews ← 找到这一行,将“Indexes”删除
↓
Options MultiViews ← 变为此状态(不在浏览器上显示树状目录结构)
AllowOverride None
Order allow,deny
Allow from all
</Directory>
TOMCAT修改conf/web.xml文件
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value> // 这里改为false 重启就好了
</init-param>
<load-on-startup>1</load-on-startup>
</servlet> 参考技术A apache关闭目录遍历新的方法:
是不是很多人发现上网搜的方法不能关闭apache目录遍历,今天整了很久,才找到方法
网上老的方法,合适旧版本,具体哪个版本之前不清楚为了避免出现版本问题,建议下面的都设置
找到apache配置文件httped.conf
然后ctrl+f查找indexes 之后将其删除或者将前面改成“-”,(老方法了,我发现只改这个不行了)
往下看:
找到同目录下有一个vhosts.conf的文件,方法一样,找到indexes 之后将其删除或者将前面改成“-”,(这个在新版本里设置就行了,不用设置上面,还是那句话,都设置了吧)
重启apache服务
打开搭建的网站,测试,发现可以了
apache 目录遍历漏洞复现
测试环境:phpstudy2018+win10
漏洞出现原因:Apahce中httpd.conf配置错误导致
原理:当客户端访问到一个目录时,Apache服务器将会默认寻找一个index list中的文件,若文 件不存在,则会列出当前目录下所有文件或返回403状态码,而列出目录下所有文件的行为称为目录遍历。
复现过程:
1、修改httpd.conf
保证indexes这里是+号,在Indexes前,加 + 代表允许目录浏览;加 – 代表禁止目录浏览。
2、修改vhosts.conf
也保证indexes是+号,我的phpstudy2018默认在httpd.conf里就是+号,但是在vhosts.conf里是减号,所以两个都改成+。
3、查看自己的index list中的文件是哪几个,
4、访问127.0.0.1
可以看到,现在我的默认文件存在,默认访问我的l.php
5、把l.php更名或删除(其它存在于index list的文件也得相应修改或删除)
6、再次访问127.0.0.1,可以看到目录了
修复措施:把indexes前面的+改为-即可。
以上是关于如何解决 Apache Tomcat 目录遍历漏洞的主要内容,如果未能解决你的问题,请参考以下文章
解决Apache Tomcat Default Files的Nessus中危漏洞
Apache Tomcat/Jboss远程代码执行漏洞 怎样解决