我正在使用Java中的漏洞扫描程序来检查允许使用弱密码套件进行连接的网站。例如,我会尝试使用56位“SSL_DHE_RSA_WITH_DES_CBC_SHA”(或其他弱密码)进行连接,如果我说200 OK,则该网站很脆弱。这是我到目前为止的地方:使用弱密码连接Java HttpURLConnection
1- HttpURLConnection始终使用默认密码,但如果我尝试使用“System.setProperty()设置弱密码,我会得到”密码不支持异常(对于大多数密码套件)或“连接被拒绝”异常,当我尝试connect()时。我知道连接被拒绝是我对不接受弱密码的网站的回答,但是如何获得实际的http响应头(带有拒绝代码)而不是异常?我实际上对找到SSL级别(第6层)上的漏洞不感兴趣,而是在HTTP级别(第7层)找到漏洞,并且我知道http标头在某些情况下可能具有欺骗性,但我确定这一点。
总之,我需要这样的事情只有弱密码套件的工作:
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());
EJP ...感谢您的意见。我想你错过了我的观点。 SSL层存在SSL漏洞......但是......有些案例(我见过其中许多案例)在App Layer上得到补偿。例如,如果您要运行漏洞扫描程序(如Nussus)。它会回来并用脆弱的密码报告该网站(在点击SSL层后)......但是......当您尝试连接它时(比方说,通过只启用弱密码套件的浏览器),您将获得一个响应如“HTTP错误403.5 - 禁止:SSL 128需要查看此资源”。 – sys147 2011-02-24 14:32:08
..另外,成功协商SSL连接并不能保证连接作为一个整体成功。 – sys147 2011-02-24 14:43:09
@ sys146:所以您需要查看响应代码及其文本。我建议你将所有缺少的信息添加到你的问题。 – EJP 2011-02-24 22:33:01