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];
}
}