系統版本
[root@www bash]# cat /etc/issueRed Hat Enterprise Linux AS release 4 (Nahant Update 8)Kernel \r on an \m
不能使用yum
測試方法:
可以使用如下命令來檢查系統存在此漏洞:
env -i X=’() { (a)=>\’ bash -c ‘echo date’; cat echo
修複前輸出:當前系統時間
使用修補方案修複後
date
嘗試過此篇介紹的 升級bash 安裝完成重啟後沒有成功
最終修複方案:
建立
vim 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];} }
編譯成so
gcc bash_ld_preload.c -fPIC -shared -Wl,-soname,bash_ld_preload.so.1 -o bash_ld_preload.so
把編譯出來的bash_ld_preload.so拷貝到/lib/
往/etc/ld.so.preload添加 註: 此處ld.so.preload檔案為建立的
/lib/bash_ld_preload.so
env x=’() { :; };echo vul’ bash -c “:”
再驗證就沒有漏洞了
原文地址:http://bobao.360.cn/news/detail/449.html