我正在研究Java中的漏洞扫描程序,以检查允许使用弱密码套件进行连接的网站。因此,我会尝试使用56位“SSL_DHE_RSA_WITH_DES_CBC_SHA”(或其他弱密码)进行连接,如果我说200 OK,则该网站容易受到攻击。这是我到目前为止的地方:
1- HttpURLConnection一直使用默认密码,但如果我尝试使用“System.setProperty()设置弱密码,我要么得到”密码不支持异常(对于大多数密码套件)或“连接被拒绝“我尝试连接时的异常()。我知道拒绝连接是我对不接受弱密码的网站的回答,但我如何获得实际的http响应标头(带有拒绝代码)而不是异常?
2-我实际上对查找SSL级别(第6层)但在HTTP级别(第7层)上的漏洞并不感兴趣,我知道在某些情况下http标头可能具有欺骗性,但我对此感到满意。< / p>
总之,我需要这样的东西才能用于Weak Cipher Suites:
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());
答案 0 :(得分:2)
如何获得实际的http响应 标题(带拒绝代码)代替 异常?
你没有。未形成SSL连接,因此无法传输HTTP标头。你得到的是SSLException。
我其实并不感兴趣 在SSL级别上查找漏洞 (第6层)但在HTTP级别
这句话没有任何意义。该漏洞存在于SSL级别。在SSL连接完成之前, 没有HTTP(s)级连接,而是失败。