知识点:java WEB-INF/web.xml泄露
解析
ctf/web源码泄露及利用办法
漏洞成因:通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,问题原因其实很简单,Nginx不会去考虑配置其他类型引擎(Nginx不是jsp引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改Nginx配置文件禁止访问WEB-INF目录就好了: location ~ ^/WEB-INF/* { deny all; } 或者return 404; 或者其他!
也就是说WEB-INF/web.xml可以看到文件的名字,其中WEB-INF是java的web应用安全目录,要想在页面中安全访问文件,要通过web.xml对要访问的文件映射访问,知道了名字后可以通过WEB-INF/classes下的目录访问文件,并读取
wp
第一步通过web.xml读取文件名字
注:若路径不全则会java.io.FileNotFoundException
发现路径,读取它classses
WEB-INF/classes/com/wm/ctf/FlagController.class
base64解密,得到flag