關於解決綠盟科技安全評估報告中的web漏洞


關於解決綠盟科技安全評估報告中的web漏洞

3.1.1.Apache Tomcat 文件包含漏洞(CVE-2020-1938)

方式一:升級tomcat版本,
對於springboot項目,需要更換內置tomcat
更換步驟:
1 進入springboot共成的parent可以看到tomcat的版本
01
2 在自己的pom文件里覆蓋掉內置的tomcat版本
::: details 點擊查看代碼

        <tomcat.version>9.0.31</tomcat.version>

            <dependency>
				<groupId>org.apache.tomcat.embed</groupId>
				<artifactId>tomcat-embed-core</artifactId>
				<version>${tomcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.tomcat</groupId>
				<artifactId>tomcat-juli</artifactId>
				<version>${tomcat.version}</version>
			</dependency>
            <!--排除依賴-->
            <dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-web</artifactId>
				<exclusions>
					<exclusion>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-starter-tomcat</artifactId>
					</exclusion>
				</exclusions>
			</dependency>


:::

效果:
02

3 啟動項目看一下
03
沒有報錯,修改成功

若不需要使用Tomcat AJP協議,可直接關閉AJP Connector,或將其監聽地址改為僅監聽本機localhost。
具體操作:

(1)編輯 <CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE> 為 Tomcat 的工作目錄):

<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" /> 

(2)將此行注釋掉(也可刪掉該行):

<!--<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />-->

(3)保存后需重新啟動Tomcat,規則方可生效。

3.1.2.檢測到會話cookie中缺少HttpOnly屬性

由於在報告中明確的指出了是哪個接口 找到接口添加如下配置

cookie.setHttpOnly(true);

3.1.3.點擊劫持:X-Frame-Options未配置

tomcat配置

進入tomcat目錄下的conf,找到web.xml配置文件,搜索httpHeaderSecurity,
找到如下配置:
tu1
tu2
修改后結果:
tu3
tu4
::: details 點擊查看代碼

    <filter>
        <filter-name>httpHeaderSecurity</filter-name>
        <filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
        <async-supported>true</async-supported>
      <init-param>
        <param-name>antiClickJackingEnabled</param-name>
        <param-value>true</param-value>
      </init-param>
      <init-param>
        <param-name>antiClickJackingOption</param-name>
        <param-value>SAMEORIGIN</param-value>
      </init-param>
    </filter>

:::

修改之后,重啟項目
瀏覽器訪問接口可以看到:
tu5
即配置成功
這里有一個問題
配置http的響應頭信息:屬性名X-Frame-Options。
可以配置的參數有兩個:

DENY:瀏覽器拒絕當前頁面加載任何Frame頁面。
SAMEORIGIN:頁面只能加載入同源域名下的頁面。

我配置的是第二個 但是訪問接口卻是第一個,不知道是什么原因。

springBoot項目

對於springBoot項目,可以使用添加過濾器的方式解決
::: details 點擊查看代碼


/**
* @Description: 解決 點擊劫持:X-Frame-Options未配置
* @Param:
* @return:
* @Date: 2020/7/24
*/
@Component
public class CookieFrameFilter implements Filter {
    @Override
    public void init(FilterConfig filterConfig) throws ServletException {

    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse resp = (HttpServletResponse) response;
        resp.addHeader("x-frame-options", "SAMEORIGIN");
        filterChain.doFilter(req, resp);
    }

    @Override
    public void destroy() {

    }
}


:::

修改后重啟項目
tu5
配置成功
注意需要添加@Component注解,使改過濾器交由spring管理,否則不生效


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM