下面是关于Ghost漏洞的详细描述:
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升级,升级后,漏洞被堵住。
修复方法
对于不同系统的升级方法如下:
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的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