漏洞(某渗透测试)修复-springboot项目使用内置tomcat去除\隐藏页面的异常报错信息以及版本号信息,亲测有效。

本文介绍了在Spring Boot项目中,如何在渗透测试中避免暴露Tomcat中间件版本号和异常报错信息。通过分析尝试了多种方法,如自定义错误页面、全局异常捕获等,最终通过修改Tomcat源码,改变ErrorReportValve类的showReport和showServerInfo属性为false,成功解决问题。文章详细阐述了解决过程,并提供了操作步骤和注意事项。
摘要由CSDN通过智能技术生成

项目场景:

在项目上线进行渗透测试过程中,客户反馈,项目异常界面泄露中间件版本号,需要隐藏,以及tomcat错误异常的信息。


问题描述

渗透测试:http://ip:port/om/include/makecvs.php?Event=http|echo%20"<?php%20echo%20md5(pkgizscxsn);unlink(__FILE__);?>"%20>>%20/usr/www/pkgizscxsn.php%20&&%20chmod%20755%20/usr/www/pkgizscxsn.php||进行此地址时候,tomcat会校验参数合法性,检查到非法字符,会报错。需要去掉中间件版本号和异常报错信息。
在这里插入图片描述


尝试分析:

1.使用springboot内置tomcat配置错误界面 server.error.path=/error2.html 去指定错误页面。还是年轻,这个不好使。

2.使用springboot默认错误页面,这个也不生效

在这里插入图片描述

3.企图用全局异常捕捉它,但是捕捉不到,异常是tomcat容器抛出的,不是java程序。
在这里插入图片描述

在这里插入图片描述

4.继承ErrorReportValve类,重写了report方法,将showReport,showServerInfo判断取反,就是为了不显示异常信息。结果还是不生效。
因此观察ErrorReportValve 这个类,发现showReport和showServerInfo均是不支持配置。
在这里插入图片描述
然后查阅官方资料,意思我李姐就是不支持配置。
在这里插入图片描述后来有一位群友点拨了我一下,然后我就改了一下,是可以的,tomcat源码也是java写的,主要就是修改简单的配置也没什么难度,就可以解决。
在这里插入图片描述


解决方案:

步骤1:下载tomcat-embed-core-8.5.51-sources.jar源码解压缩
本地仓库地址:xxxx\org\apache\tomcat\embed\tomcat-embed-core\8.5.51
解压完会有三个文件夹
在这里插入图片描述

步骤2:创建一个maven项目,将javax和org复制到java文件夹下,META-INF复制到resource文件夹下。配置pom.xml文件如下:具体版本号视情况而定。将ErrorReportValve 这个类下的showReport和showServerInfo改为false
**注意:**jdk版本问题,使用对应的jdk1.7版本进行编译打包。

<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值