2

RedHat 有一个针对涉及预加载库的Shellshock漏洞的解决方法。解决方法源代码的 URL 位于bash_ld_preload.c

但解决方法步骤现在似乎已经消失了。这是一个糟糕的解决方案还是没有解决方案?

编码:

#include <sys/types.h>
#include <stdlib.h>
#include <string.h>

static void __attribute__ ((constructor)) strip_env(void);
extern char **environ;

static void strip_env()
{
    char *p,*c;
    int i = 0;
    for (p = environ[i]; p!=NULL;i++ ) {
        c = strstr(p,"=() {");
        if (c != NULL) {
            *(c+2) = '\0';
        }
        p = environ[i];
    }
}
4

1 回答 1

2

给出的代码从环境中完全删除了所有导出的函数(或者,更确切地说,使它们的内容成为空字符串)。

确实有你想要的副作用,使与解析和处理导出函数相关的漏洞没有实际意义。

于 2014-09-25T21:32:35.077 回答