组件风险分析与修复指引:cn.hutool:hutool-http Hutool证书验证漏洞-风险分…

2024-06-08 376 0

漏洞简介

漏洞名称:证书验证漏洞

漏洞编号:CVE-2022-22885

漏洞类型:CWE-295 证书验证不正确

漏洞概述

该库的HttpRequest类默认的HostnameVerifier信任所有的hostname,并不对服务器证书进行校验。

https://nvd.nist.gov/vuln/detail/CVE-2022-22885

漏洞利用条件

使用Hutool默认的HostnameVerifier。

漏洞分析

该漏洞是证书验证漏洞,该漏洞会导致服务器遭受中间人攻击从而造成信息泄露等问题。若泄露的信息涉及密钥等可供验证的内容,会导致密钥对应设备被入侵。

该漏洞产生的原因在于Hutool HttpUtil的setInfo函数传入的hostNameVerfier默认的为TRUST_ANY_HOSTNAME_VERIFIER。

组件风险分析与修复指引:cn.hutool:hutool-http Hutool证书验证漏洞-风险分…插图

其恒返回true。

组件风险分析与修复指引:cn.hutool:hutool-http Hutool证书验证漏洞-风险分…插图1

HostnameVerifier是一种fallback机制,当要连接的host与服务端证书server name不匹配进行调用。Hutool默认放行所有这类请求。故而服务器易遭受不安全站点的攻击。

漏洞复现

1.使用未封装的Java函数请求不安全页面

Java自带HttpsURLConnection访问hostname与证书不匹配时报错。

组件风险分析与修复指引:cn.hutool:hutool-http Hutool证书验证漏洞-风险分…插图2

2.使用Hutool的HttpRequest类访问不安全页面

成功返回页面内容。

组件风险分析与修复指引:cn.hutool:hutool-http Hutool证书验证漏洞-风险分…插图3

解决方案:

相关commit: https://github.com/dromara/hutool/commit/cdf105589deb9b0999c7fcdf33b2b5b86b22f960

漏洞补丁: https://github.com/dromara/hutool/commit/cdf105589deb9b0999c7fcdf33b2b5b86b22f960

参考方案:

目前厂商已发布升级补丁以修复漏洞,补丁获取链接: https://github.com/dromara/hutool/issues/2042

漏洞修复:

使用自定义的HostnameVerifier

使用自定义的HostnameVerifier对证书主体名称和hostname进行校验。

private static class TestHostnameverifier implements HostnameVerifier{
    @override   
    public boolean verify(String hostname, SSLSession session){
        try{
            String principalName = session.getPeerPrincipal().getName();
            if(hostname.equals("1.1.1.1") && principalName.equals("1.1.1.1"))
                return true;
            }catch(SSLPeerUnverifiedException e){
            }
            return HttpsURLConnection.getDefaultHostnameVerifier().verify(hostname,session);
     }
}

修复后,如下图所示,在执行Https请求时,程序会自动校验hostname和从证书获取的主体名称。具体需要根据请求URL改变传入hostname.equals(),principalName.equals()。如此就不会遭受证书域名不匹配的不安全站点的攻击。

组件风险分析与修复指引:cn.hutool:hutool-http Hutool证书验证漏洞-风险分…插图4该修复方案需要根据请求URL的hostname和证书信息配置verify代码。


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论