关于bash的shellshock漏洞

这一漏洞的描述如下:

Shellshock (CVE-2014-6271, CVE-2014-6277, CVE-2014-6278, CVE-2014-7169, CVE-2014-7186, CVE-2014-7187) is a vulnerability in GNU‘s bash shell that gives attackers access to run remote commands on a vulnerable system. If your system has not updated bash in since Tue Sep 30 2014: 1:32PM EST (See patch history), you‘re most definitely vulnerable and have been since first boot. This security vulnerability affects versions 1.14 (released in 1994) to the most recent version 4.3 according to NVD.

这里还有一个测试这一漏洞的脚本:

shellshock_test.sh

至于原理,看了半天,大概有点明白了:

漏洞的关键在于bash会把定义的各种函数放到env里面去,大致的格式如下:

$ function foo { echo bar; }
$ export -f foo
$ env | grep -A1 foo
foo=() { echo bar
}

这样的话,是不是可以放一个假的函数进去呢?答案是,可以!而且,这里的关键在于,这里它执行函数的时候,不是检测完整的“{}”对,而是简单的执行“{”之后的所有bash代码!!!也包括你放进去的代码。。。所以,为什么不放点东西进去让它执行?

那么话说回来了,是不是不执行bash不就完事了?理论上是这样的。但是,事情总有意外,比如,你在编程的时候使用了systcall之类的,去运行了shell指令。你的程序继承了父程序的环境变量,你调用的systemcall空间继承了你程序的环境变量,然后,它就可能顺带的执行被注入到环境变量中的代码。

下面是360提供的简单测试sh的一个方案:

1. 服务器端有一个shell脚本,内容随意,可以如下:

#!/bin/bash

echo "Content-type: text/html"

echo ""

echo ‘<html>‘

echo ‘<head>‘

echo ‘<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">‘

echo ‘<title>PoC</title>‘

echo ‘</head>‘

echo ‘<body>‘

echo ‘<pre>‘

/usr/bin/env

echo ‘</pre>‘

echo ‘</body>‘

echo ‘</html>‘

exit 0

2. 此时,用户端是可以用浏览器,curl,wget,nc...等等工具去连接你的服务器,并触发这个脚本的。比如,curl,可以看到:

3. 注意,这是正常情况!!!正常情况就是该显示嘛,就显示嘛!!!但是,WEB服务器都是把http的header都先放到ENV里面去的。所以,有了下面的访问(nc和wget类似,给传header就行):

4.咳咳。。然后你就欢快的看到了下面的情形。

时间: 2024-11-07 06:39:05

关于bash的shellshock漏洞的相关文章

“破壳”(Shellshock)漏洞修复

"破壳"(Shellshock)漏洞修复 背景: 距离"破壳"(Shellshock)漏洞漏洞爆发一句过去两周有余了(2014年9月24日公布).相信很多人都已经听说过了这个危害等级为十的漏洞,编号为CVE-2014-6271,该漏洞将导致远程攻击者在受影响的系统上执行任意代码:相比之下,与上一个著名的漏洞"心脏出血"只有五,不过奇怪的是,"破壳"漏洞目前的反响并不高."破壳"漏洞实际上早在1989年实际上

shellshock漏洞回顾

review 定位漏洞缘由部分大佬认为uCGI技术的普及是个错误,正是因为CGI技术的不合理之处,Shellshock才有机可乘. CGI技术是Web技术刚兴起的时候发明的,它是最早的可以创建动态网页内容的技术之一.它会把一个HTTP请求转化为一次shell调用.CGI (Common Gateway Interface),是一种基于浏览器的输入,在Web服务器上运行程序的方法. 风险预估 起初以为这个仅仅是个本地执行的漏洞.后面发现亦可作为远程×××. 远程×××面:正是由于后台处理程序不仅仅

实验三 ShellShock 攻击实验

ShellShock 攻击实验 沙雨济 一. 实验描述 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发.在本实验中,学生需要亲手重现攻击来理解该漏洞,并回答一些问题. 二. 预备知识 1. 什么是ShellShock? Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开.许多互联网守护进程,如网页服务器,使用bash来处理某些命令,从

黑客通过linux bash漏洞借助apache cgi向产品服务器植入木马病毒的实例分享!

问题描述: 公司的某产品服务器(阿里云的)被黑客攻击了,确切的说是被黑客当成肉鸡了. 肉鸡:肉鸡也称傀儡机,是指被黑客通过各种方式植入木马病毒,然后被远程操纵的机器, 肉鸡可以是各种系统,如windows,linux和unix等,可以是一家公司,企业和学校甚至是政府军队的服务器. 发现问题: 阿里云管理中心给公司领导发短信了(阿里云账号绑定了手机号),短信说你的x服务器存在恶意攻击, 登陆阿里云管理中心发现x服务器有很多风险,如下图: 分析这些风险发现,x服务器向网络内很多服务器发送了暴力破解破

新手理解的bash环境变量解析漏洞

p{ line-height:150%; font-size:18px; font-family:fangsong; margin-top:20px; } pre {font-size:15px; background-color:black; color: white;font-family: sans-serif } #refer{background-color:gray;} h1 {font-family:simhei;} 1 环境变量是什么 无论是Windows程序还是Linux程序,

【系统那点事】bash代码注入的安全漏洞【转】

本次日记来自网络(点) 很多人或许对上半年发生的安全问题“心脏流血”(Heartbleed Bug)事件记忆颇深,这两天,又出现了另外一个“毁灭级”的漏洞——Bash软件安全漏洞.这个漏洞由法国GNU/Linux爱好者Stéphane Chazelas所发现.随后,美国电脑紧急应变中心(US-CERT).红帽以及多家从事安全的公司于周三(北京时间9月24日)发出警告. 关于这个安全漏洞的细节可参看美国政府计算安全的这两个漏洞披露:CVE-2014-6271 和 CVE-2014-7169. 这个

Linux 曝出重大bash安全漏洞及修复方法

日前Linux官方内置Bash中新发现一个非常严重安全漏洞(漏洞参考https://access.redhat.com/security/cve/CVE-2014-6271  ),黑客可以利用该Bash漏洞完全控制目标系统并发起攻击. 已确认被成功利用的软件及系统:所有安装GNU bash 版本小于或者等于4.3的Linux操作系统. 该漏洞源于你调用的bash shell之前创建的特殊的环境变量,这些变量可以包含代码,同时会被bash执行. 漏洞检测方法: env x='() { :;}; e

Bash漏洞深入分析及修补测试

2014年9月25日互联网爆出bash存在严重漏洞!我当时一头雾水,不知发生何事,于是求助"度娘"才知道发生了惊天的大事.此漏洞比openssl的心血漏洞还牛X,简直就是放血!当时,找到的方案是升级bash-4.1.2-15.el6_5.1.x86_64能解决.自己在虚拟机上测试了一下,并对照红帽当时官网的结果对比,自以为一切OK.结果9月26日中午,又得知那个补丁失效,需要再升级到bash-4.1.2-15.el6_5.2.x86_64 ,于是我零乱了,决定仔细研究一下这个漏洞.[关

Linux Bash严重漏洞修复方法

bash 是一个为GNU计划编写的Unix shell.:Bourne-Again SHell - 这是关于Bourne shell(sh)的一个双关语(Bourne again / born again).Bourne shell是一个早期的重要shell,由史蒂夫·伯恩在1978年前后编写,并Version 7 Unix一起发布.bash则在1987年由布莱恩·福克斯创造.在1990年,Chet Ramey成为了主要的维护者. shell在linux系统所处的位置: 常见linux和UNIX