考点:
WEB-INF/web.xml泄露
漏洞成因:通常一些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; 或者其他!
解题过程:
点开题目进入页面:如图所示
一个登录界面,很难不让人想到sql注入,进行了测试无果,点击help进行查看;
返回结果为一个java包(阅读了大佬文章说是一个java报错信息)==》之后大佬们就想到了WEB-INF 目录泄露(题目的一些小提示java),
众所周知:)java项目的一些小结构(如下)
1、WEB-INF是Java的WEB应用的安全目录。如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。WEB-INF主要包含一下文件或目录。
2、/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
3、 /WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中。
4、 /WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件 。
5、/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
6、 /WEB-INF/database.properties:数据库配置文件。
拓展结束继续做题:
通过bp工具进行修改传参获取web-inf/web.xml配置文件,观察映射及各容器状况
我们看到了flag有关文件,下载
阅读
发现了文本中的明示,随后又看到了两个性感的等号,盲猜是base64(base64特征:空位用=补齐)进行解码获得flag
参考博客:
https://blog.csdn.net/wy_97/article/details/78165051
特别鸣谢:Sp4rkW