云主机和虚拟主机

解决Linux主机中glibc溢出漏洞

作者:qvdv来源:www.qvdv.com更新时间:2015-01-30

glibc溢出漏洞的危害和攻击原理以及危害性,这里就不多说了,不清楚的的可以网上搜搜,这里主要讲解如何修复该漏洞。

在讲解解决Linux主机中glibc溢出漏洞前,先列出可能要用到的Linux命令:查看glibc版本:getconf -a |grep glibc -i

是否存在漏洞检测:

1.在LINUX上新建qv.c文件,该文件内容为:

#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
 
#define CANARY "in_the_coal_mine"
 
struct {
  char buffer[1024];
  char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };
 
int main(void) {
  struct hostent resbuf;
  struct hostent *result;
  int herrno;
  int retval;
 
  /*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
  size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
  char name[sizeof(temp.buffer)];
  memset(name, '0', len);
  name[len] = '';
 
  retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
 
  if (strcmp(temp.canary, CANARY) != 0) {
    puts("vulnerable");
    exit(EXIT_SUCCESS);
  }
  if (retval == ERANGE) {
    puts("not vulnerable");
    exit(EXIT_SUCCESS);
  }
  puts("should not happen");
  exit(EXIT_FAILURE);
}

2.执行命令:“gcc qv.c -o CVE-2015-0235; ./CVE-2015-0235”

3.如果执行结果为“not vulnerable”,恭喜你漏洞不存在;但是如果结果为“vulnerable”,那则需要修补漏洞了。

glibc溢出漏洞修复办法:

执行安装glibc命令:“yum install glibc”或者直接更新“yum update glibc”。

重启系统,再检测一下。如果操作无误,那将会看到“not vulnerable”的输出结果。


本文版权所有,转载须注明:来源 http://www.qvdv.com/qvdv-zhuji-764.html