检测服务器是否开启重协商功能(用于CVE-2011-1473漏洞检测)
背景
由于服务器端的重新密钥协商的开销至少是客户端的10倍,因此攻击者可利用这个过程向服务器发起拒绝服务攻击。OpenSSL 1.0.2及以前版本受影响。
方法
使用OpenSSL(linux系统基本都自带)连接服务器进行测试:
- openssl s_client -connect ip:port
- HEAD / HTTP/1.0
- R
示例
服务器443端口开启重协商,使用openssl s_client -connect 172.31.0.22:443 连接测试(删除了部分证书信息):
[root@localhost ~]# openssl s_client -connect 172.31.0.22:
CONNECTED()
depth= CN = HTTPS-Self-Signed-Certificate
verify error:num=:self signed certificate
verify return:
depth= CN = HTTPS-Self-Signed-Certificate
verify return:
---
Certificate chain
s:/CN=HTTPS-Self-Signed-Certificate
i:/CN=HTTPS-Self-Signed-Certificate
---
Server certificate
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----
subject=/CN=HTTPS-Self-Signed-Certificate
issuer=/CN=HTTPS-Self-Signed-Certificate
---
No client certificate CA names sent
Server Temp Key: DH, bits
---
SSL handshake has read bytes and written bytes
---
New, TLSv1/SSLv3, Cipher is DHE-RSA-AES256-SHA
Server public key is bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.
Cipher : DHE-RSA-AES256-SHA
Session-ID: AAF98A92D700189C29EEFE766769E6E5641BAC6A9AB96BC7D1302AE79D21CA06
Session-ID-ctx:
Master-Key: 36FC13A9ADBC82EB9E0CC60F9981E2A3D6A2BEC093A0415AFB2A843880174709BB1A87946AA698D95DA3788C72D621CB
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
TLS session ticket lifetime hint: (seconds)
TLS session ticket:
Start Time:
Timeout : (sec)
Verify return code: (self signed certificate)
---
HEAD / HTTP/1.0
R
RENEGOTIATING
140432695093152:error:14094153:SSL routines:SSL3_READ_BYTES:no renegotiation:s3_pkt.c:1242:
SSL握手完成后,输入HEAD / HTTP/1.0,然后回车,输入‘R’触发重协商,此时服务器报错并断开连接:
140432695093152:error:14094153:SSL routines:SSL3_READ_BYTES:no renegotiation:s3_pkt.c:1242:
说明服务器重协商功能被关闭。
服务器4443端口开启重协商,使用openssl s_client -connect 172.31.0.22:4443 连接测试(删除了部分证书信息):
[root@localhost ~]# openssl s_client -connect 172.31.0.22:
CONNECTED()
depth= CN = HTTPS-Self-Signed-Certificate
verify error:num=:self signed certificate
verify return:
depth= CN = HTTPS-Self-Signed-Certificate
verify return:
---
Certificate chain
s:/CN=HTTPS-Self-Signed-Certificate
i:/CN=HTTPS-Self-Signed-Certificate
---
Server certificate
-----BEGIN CERTIFICATE-----
......
-----END CERTIFICATE-----
subject=/CN=HTTPS-Self-Signed-Certificate
issuer=/CN=HTTPS-Self-Signed-Certificate
---
No client certificate CA names sent
---
SSL handshake has read bytes and written bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.
Cipher : AES256-SHA
Session-ID: 6D0DF6EFC8491C9DEEB0161B85A47C101CF5DA9A9CD4EAA4EFCEEF46571A2A2F
Session-ID-ctx:
Master-Key: B3BBD776EA24230B37E7EF4B2EAF02D6D66185F12D3C87640308FB1996E0BDA4A94CDB35455D0E98A5C34AAAF6EA1C7F
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
TLS session ticket lifetime hint: (seconds)
TLS session ticket:
......
Start Time:
Timeout : (sec)
Verify return code: (self signed certificate)
---
HEAD / HTTP/1.0
R
RENEGOTIATING
depth= CN = HTTPS-Self-Signed-Certificate
verify error:num=:self signed certificate
verify return:
depth= CN = HTTPS-Self-Signed-Certificate
verify return:
HEAD / HTTP/1.0 HTTP/1.1 Bad request
Date: Wed, Sep ::
Content-Length: ^C
使用和上方所述相同的操作,发送‘R’触发重协商,可以看到重协商成功,连接正常,此时再次发送HEAD / HTTP/1.0 ,敲两次回车,得到服务器响应400。说明服务器重协商功能开启。
总结
通过OpenSSL连接服务器测试重协商功能,如果服务器重协商功能关闭则终端发送‘R’后会报错并断开连接。
参考资料
https://mailarchive.ietf.org/arch/msg/tls/wdg46VE_jkYBbgJ5yE4P9nQ-8IU
https://blog.ivanristic.com/2009/12/testing-for-ssl-renegotiation.html
检测服务器是否开启重协商功能(用于CVE-2011-1473漏洞检测)的更多相关文章
- [漏洞检测]Proxpy Web Scan设计与实现(未完待续)
Proxpy Web Scan设计与实现 1.简介: Proxpy Web Scan是基于开源的python漏洞扫描框架wapiti改造的web漏洞扫描器,其主要解决以下几个问题而生 ...
- 漏洞检测方法如何选?详解源代码与二进制SCA检测原理
摘要:本文探讨的是SCA具体的检测原理,源代码SCA检测和二进制SCA检测有哪些相同点和不同点,在进行安全审计.漏洞检测上各自又有什么样的优势和适用场景. 本文分享自华为云社区<源代码与二进制文 ...
- Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中
一.开启MyS远程访问功能 1.进入服务器输入netstat -an | grep 3306确认3306是否对外开放,MySQL默认状态下是不对外开放访问功能的.输入以上命令之后如果端口没有被开放就会 ...
- Centos7 安装mysql服务器并开启远程访问功能
大二的暑假,波波老师送了一个华为云的服务器给我作测试用,这是我程序员生涯里第一次以root身份拥有一台真实的云服务器 而之前学习的linux知识在这时也派上了用场,自己的物理机用的是ubuntu系统, ...
- Linux下利用nc命令来监控检测服务器的端口使用情况(转载)
最近碰到一个项目,前端用apache htttpd进行发布(80端口),通过双机负载均衡转发到后端的两个tomcat进行处理(8081和8082端口),现在需要随时监控这三个端口的情况,一旦down掉 ...
- 服务器如何开启php的fsockopen函数? 使用发邮箱类
参考:http://www.daixiaorui.com/read/16.html#viewpl 服务器如何开启php的fsockopen函数?如果你要使用一些邮件的类,那么很多要求支持php的fso ...
- IIS6.0服务器完美开启Gzip压缩[转]
转自:http://seo.qiankoo.com/731 在昨天服务器还没重装之前,这个服务器已经开启了Gzip,去年配置的时候就很波折,因为配置文件在C盘,所以重装后Gzip就没了. 今天理论上第 ...
- Nginx开启gzip压缩功能
在Nginx安装完成之后,我们可以开启Gzip压缩功能,这里Nginx默认只能对text/html类型的文件进行压缩.下面的指令为开启Gzip的指令: gzip on; gzip_http_versi ...
- Android BLE与终端通信(四)——实现服务器与客户端即时通讯功能
Android BLE与终端通信(四)--实现服务器与客户端即时通讯功能 前面几篇一直在讲一些基础,其实说实话,蓝牙主要为多的还是一些概念性的东西,当你把概念都熟悉了之后,你会很简单的就可以实现一些逻 ...
随机推荐
- numpy的基本API(二)——维数操作
numpy的基本维数操作API iwehdio的博客园:https://www.cnblogs.com/iwehdio/ 1.np.copyto(dst, src) copyto方法将数组src复制到 ...
- 【简明翻译】Hibernate 5.4 Getting Started Guide 官方入门文档
前言 最近的精力主要集中在Hibernate上,在意识到Hibernate 5 的中文资料并不多的时候,我不得不把目光转向Hibernate的官方doc,学习之余简要翻一下入门文档. 原文地址:htt ...
- 笔记||Python3之布尔表达式+条件判断
布尔表达式: 布尔类型:特性:只有两种情况 --- 真 / 假 1 -- True False 2 -- type(True) ------------ <class ...
- Python3 并发编程2
目录 进程互斥锁 基本概念 互斥锁的使用 IPC 基本概念 队列 生产者消费者模型 基本概念 代码实现 线程 基本概念 创建线程 线程互斥锁 进程互斥锁 基本概念 临界资源: 一次仅允许一个进程使用的 ...
- CSS——overflow的参数以及使用
学习网站:https://developer.mozilla.org/zh-CN/docs/Web/CSS/overflow
- SpringBoot电商项目实战 — 商品的SPU/SKU实现
最近事情有点多,所以系列文章已停止好多天了.今天我们继续Springboot电商项目实战系列文章.到目前为止,整个项目的架构和基础服务已经全部实现,分布式锁也已经讲过了.那么,现在应该到数据库设计及代 ...
- keras模型保存和权重保存
模型保存和读取(包括权重): model.save('./model.h5') from keras import models model = models.load_model(./model.h ...
- CSS样式 解决文字过长显示省略号问题
一.CSS样式 解决文字过长显示省略号问题 1.一般样式 一般 css 样式,当宽度不够时,可能会出现换行的效果.这样的效果在某些时候肯定是不行的,可以修改 css 样式来解决这个问题. <!D ...
- 使用Advanced Installer打包工具如何设置是否安装预安装程序包
要保证我们的程序能在目标机器上正常运行,便需要保证目标机器上提供了程序运行的必要组件. 而在使用Advanced Installer打包工具制作程序安装包时,我们可以通过配置“需求-运行环境-程序包- ...
- 利用zabbix监控RocketMQ
根据需求,监控三个指标:MQ进程.自定义监控项订阅组的未消费值Diff Total和TPS. 创建MQ 状态的监控模板,进程监控利用zabbix自带的模板: 监控订阅组的Diff Total和TPS ...