Bash 漏洞是什么级别的漏洞,有什么危害,具体如何修复?

本文详细解析了Shellshock漏洞的利用方式、原理及其影响范围,并提供了针对不同操作系统的修复方法。重点关注了如何利用环境变量注入恶意代码,以及如何通过系统更新来修复此漏洞,确保网络安全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天收到阿里云的短信通知,让我修复一个漏洞,因此特意在知乎查了一下这个漏洞的情况,一下内容来自知乎,作者吴昊。

(希望 SF 也已经修复了此漏洞)


利用这个漏洞,需要两个条件:

  1. 服务器收到请求后,会执行bash
  2. 执行bash的时候,会将UserAgent等设置成环境变量

同时满足这两点的,一般是使用CGI的服务器,所以受到影响的服务器份额(我语文不好)不是很大。
对它进行一下简单的说明:

下面是乌云上的测试脚本:

$ curl -A ‘() { :; }; /bin/cat /etc/passwd > dumped_file’ http://192.168.0.1/poc.cgi 

poc.cgi 是一个开头为 #! /bin/bash 的cgi脚本

在服务器端会发生的事情:

  1. 收到HTTP请求,此请求带有Head: “User-Agent: () { :; }; /bin/cat /etc/passwd >
    dumped_file”

  2. 服务器将User-Agent设置为环境变量,并执行bash

  3. bash由于解析漏洞,执行了如下脚本

    $ /bin/cat /etc/passwd > dumped_file

由于解析漏洞使得环境变量被运行的原理如下(图片来源见篇尾):

由于解析漏洞使得环境变量被运行的原理

大家可以用自己的bash运行下面的代码尝试:

env User-Agent='() { :;}; echo hehe'  bash -c "echo test"
hehe

Linux(大)部分发行版都已经更新了bash,这个命令应该已经没用了,不过OS X的用户还是可以试一下的,Apple没有发布新的安全更新(Cook: 你们一定不会用它当服务器的)

PS:把echo hehe换成rm -rf ~效果更佳(误)。

现在的情况:

因为我只有Debian的环境,所以我只能说上面的漏洞在Debian源更新的bash已经解决了。
//就当它已经解决了吧

但是不小心又看到了下面的漏洞

$ env User-Agent='() {(a)=>\' bash -c 'output date'; cat output

// 从小bash没学好,一路兵败如山倒
// 我不会说我看不懂的

试了一下,确实会输出执行的date,但是原理是?

先看一下下面的图:

漏洞

我试着在bash里输入:

$ >\
# 然后bash的显示
>
# 输入
> output date
# ls一下,发现当前目录有叫output的文件

嗯,应该是>符号把date的输出重定向到output里了

这个漏洞在Debian源里更新的bash还没有解决.....(9月26日上午3:50)

关于可以利用它做什么:

首先要反对一下目前排名第一的答案,有了bash不等于有一切,要看是什么权限运行的bash。

  1. cgi服务器进程一般不会是root权限

  2. 如果是的话,那个网站的网(yun)管(wei)就可以开了又开了。

  3. 所以拿到的很大几率是一个像"www_data"这样的用户权限

拿到www_data可以做什么呢?

可以看网站的配置文件,里面可能有数据库密码,然后就可以进数据库了。(真的这么简单么)
// 看起来还是有危险的,下面是解决方案

# debian/ubuntu 用户
$ sudo apt-get update
$ sudo apt-get install bash
# centos 用户
$ sudo yum update bash
# osx 用户
# 等Apple更新吧
# windows 用户
# 别凑热闹了亲

// 这里是一段结束语
// 这个漏洞我觉得是cgi服务器的问题(误),把用户的输入放到env里真心大丈夫?

Update:

  • Debian源里的bash已经修复第二个漏洞

  • OS X修复方法参考 security - How do I recompile Bash to avoid Shellshock
    (the remote exploit CVE-2014-6271 and CVE-2014-7169)?

图片截屏自:

CVE-2014-6271 : Remote code execution through bash : netsec

参考链接:

  • CVE-2014-6271 -- WooYun(白帽子技术社区) -- 网络安全资讯、讨论,跨站师,渗透师,结界师聚集之地又一个有意思的地方

  • CVE-2014-6271: Bash lets you do bad things. (Shellshock)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值