Java HttpURLConnection 使用弱密码连接

标签 java ssl https encryption weak

我正在使用 Java 开发漏洞扫描器,以检查允许使用弱密码套件进行连接的网站。因此,例如,我会尝试使用 56 位“SSL_DHE_RSA_WITH_DES_CBC_SHA”(或其他弱密码)进行连接,如果我说 200 OK,则该网站容易受到攻击。这是我到目前为止的位置:

1- HttpURLConnection 在默认密码下一直工作良好,但如果我尝试使用“System.setProperty() 设置弱密码,我要么得到“密码不支持的异常(对于大多数密码套件)或”当我尝试连接()时,连接被拒绝”异常。我知道连接被拒绝是我对不接受弱密码的网站的回答,但我如何获得实际的 http 响应 header (带有拒绝代码)而不是异常?

2- 我实际上对在 SSL 级别(第 6 层)但在 HTTP 级别(第 7 层)查找漏洞不感兴趣,我知道 http header 在某些情况下可能具有欺骗性,但我同意这一点。

总而言之,我需要这样的东西才能仅用于弱密码套件:

        URL url = new URL(ip);
        HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
        con.setHostnameVerifier(new HostnameVerifier() {
            public boolean verify(String hostname, SSLSession session) {
                return true;
            }
        });
        con.connect();
        System.out.println("Response Code : " + con.getResponseCode());

最佳答案

how do I get the actual http reponse header (with rejection code) instead of the exception?

你不知道。未形成 SSL 连接,因此没有任何 HTTP header 可以传输。您得到的是 SSLException。

I am actually not interested in finding vulnerability on the SSL level (layer 6) but on HTTP level

这个说法没有任何意义。该漏洞存在于 SSL 级别。在 SSL 连接完成之前, 没有 HTTP(s) 级别的连接,而是失败。

关于Java HttpURLConnection 使用弱密码连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5092375/

相关文章:

docker - docker 中的 ASP.net 核心 gRPC 服务回复错误的 ssl 证书

ssl - 我是否需要客户端私钥来建立安全的 TLS/SSL 连接?

c# - 如何使用 ASP.NET Core 验证 Web 请求的 SSL 证书

java - ListView 两次显示列表项

java - 确定等距游戏和不规则形状的绘制顺序 (Java)

java - 访问部署在 WebSphere Liberty 集群上的应用程序时出现证书问题

ssl - 在 OpenSSL 中握手后查找 SSL 版本

javascript - 远程计算机上 HTTPS 的不安全响应错误

Java CompletableFuture.allOf() 找不到任何数组元素

java - 我如何确定输入的最小值?