Ghost漏洞,网络安全的新威胁?

下面是关于Ghost漏洞的详细描述:

Ghost漏洞,网络安全的新威胁?插图1

Ghost漏洞(CVE-2015-0235)

漏洞简介

Ghost漏洞(CVE-2015-0235)是Qualys研究员发现的一个Linux服务上非常严重的安全漏洞,可以被利用来远程代码执行及本地权限提升,该漏洞存在于glibc库中的__nss_hostname_digits_dots()函数,在nss/getXXbyYY.c这个文件中,gethostbyname()会使用这个功能。

漏洞影响范围

该漏洞本地和远程都可以利用,要利用此漏洞,攻击者需要构造一个特定的hostname数据条给Linux上开放的服务,如果服务不对数据做安全处理,就会引发一个任意代码执行漏洞,受影响的服务包括procmail、Exim、pppd、clockdiff等。

检测方法

可以通过以下命令查看系统上有哪些服务依赖glibc:

lsof | grep libc | awk '{print $1}' | sort | uniq

还可以通过以下代码测试是否存在漏洞:

#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <gnu/libc-version.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);
}

编译后执行,发现服务器存在漏洞,使用如下命令查看有那些进程依赖了libc:

lsof | grep libc | awk '{print $1}' | sort | uniq | less

使用netstat –lntpu | grep 8080,发现8080端口依赖了libc,可以看到进程号是:26316,这里需要将gcc升级,升级后,漏洞被堵住。

Ghost漏洞,网络安全的新威胁?插图3

修复方法

对于不同系统的升级方法如下:

Centos/RHEL/Fedora 5,6,7:yum update glibc,用镜像源升级之后,需要重启受影响的进程,最好是重启系统。

Android系统上面使用的是Google专门为Android开发的C/C++库:Bionic,该库不同于glibc。

Ghost博客程序漏洞(CVE-2022-24785)

漏洞简介

Ghost是一款以Node.js语言开发的开源博客程序,6月15日,Ghost官方修复了一个RCE漏洞,由于Ghost调用的moment.js库存在已知漏洞(CVE-2022-24785),导致攻击者可以通过帖子编辑器中的文件上传功能上传文件,进而执行任意代码。

漏洞等级与利用条件

漏洞等级为中危,利用需要攻击者获得博客后台账户权限,利用成本较高。

漏洞分析与验证方法

Ghost漏洞,网络安全的新威胁?插图5

Ghost的RCE漏洞是由于moment.js下的路径遍历和文件包含漏洞,再加上Ghost中的文件上传和指定locale功能,moment.js中的文件包含漏洞,在一般情况下可能影响较小,但结合某些功能设计或其他漏洞使得参数和内容可控,造成了RCE的产生。 Moment CVE-2022-24785 Moment.js是一个用于解析、校验、操作、显示日期和时间的JavaScript工具库,在Github上具有4万+的star,在4.4日,公开了一个moment.js的路径遍历漏洞和潜在的文件包含漏洞,漏洞触发点在lib/locale/locales.js文件的loadLocale方法中。

验证步骤

1、经过Ghost身份验证的用户;

2、Docker启动Ghost;

3、访问页面http://localhost:3001/ghost,进行管理员配置;

4、上传恶意js文件,并记录文件路径;

5、在settings>General>Publication Language处输入刚刚获得的路径,如../../../content/files/2022/06/abc;

6、刷新前端页面,可以发现恶意js文件被执行。

以上就是关于“ghost漏洞”的问题,朋友们可以点击主页了解更多内容,希望可以够帮助大家!

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/88367.html

小末小末
上一篇 2024年11月1日 17:57
下一篇 2024年11月1日 18:28

相关推荐