2011-02-23 85 views
0

我正在使用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()); 

回答

2

我怎么实际的HTTP效应初探 头部(拒收代码),而不是异常的 ?

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

我其实在 不感兴趣的SSL级别 (6层)上,而在HTTP水平

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

+0

EJP ...感谢您的意见。我想你错过了我的观点。 SSL层存在SSL漏洞......但是......有些案例(我见过其中许多案例)在App Layer上得到补偿。例如,如果您要运行漏洞扫描程序(如Nussus)。它会回来并用脆弱的密码报告该网站(在点击SSL层后)......但是......当您尝试连接它时(比方说,通过只启用弱密码套件的浏览器),您将获得一个响应如“HTTP错误403.5 - 禁止:SSL 128需要查看此资源”。 – sys147 2011-02-24 14:32:08

+0

..另外,成功协商SSL连接并不能保证连接作为一个整体成功。 – sys147 2011-02-24 14:43:09

+0

@ sys146:所以您需要查看响应代码及其文本。我建议你将所有缺少的信息添加到你的问题。 – EJP 2011-02-24 22:33:01