Bash 破壳漏洞Shellshock (CVE-2014-6271)复现

漏洞简介

GNU Bash 4.3及之前版本在评估某些构造的环境变量时存在安全漏洞,向环境变量值内的函数定义后添加多余的字符串会触发此漏洞,攻击者可利用此漏洞改变或绕过环境限制,以执行Shell命令。某些服务和应用允许未经身份验证的远程攻击者提供环境变量以利用此漏洞。此漏洞源于在调用Bash Shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在Shell被调用后会被立即执行。

影响范围

由于Bash在各主流操作系统的广泛应用,此漏洞的影响范围包括但不限于大多数应用Bash的Unix、Linux、Mac OS X,而针对这些操作系统管理下的数据均存在高危威胁。

漏洞的利用方式会通过与Bash交互的多种应用展开,包括HTTP、OpenSSH、DHCP等

漏洞原理

该Bash使用的环境变量是通过函数名称来调用的,导致漏洞是以(){开头定义的环境变量在命令env中解析成函数后,bash执行并未退出,而是继续解析并执行shell命令。而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。

复现过程

首先进入vulhub环境,找到bash下的shellshock并启用

docker-compose up -d

请添加图片描述
进入环境127.0.0.1:8080请添加图片描述
启动成功后检测本地的漏洞
在这里插入图片描述
发现存在后进入容器

docker exec -it dc62ea87cc21 bash

进入容器后使用payload:env x=‘() { :;}; echo shellshocker’ bash -c “echo tom”
tip:如果提示'('出现问题,可能是linux5.0后使用'('需要进行转译,可以采用加\或者
在这里插入图片描述
显示shellshocker表示存在漏洞
然后在shell中定义变量
在这里插入图片描述
开启新进程后发现$spiringbird变量并没有继承
所以我们直接将变量存到环境变量里
此处使用export命令
在这里插入图片描述
成功,接下来设置一个环境变量
在这里插入图片描述
成功执行,下面可以进一步尝试
在这里插入图片描述
创建的字符串变量被设置成环境变量后在子进程解释成了函数执行,成功读取/etc/passwd

靶场复现

进入环境后,该漏洞环境分为最新版bash生成的safe.cgi和易受shellshock攻击的victim.cgi
我们进入到victim.cgi页面
在User-Agent处提交指令
在这里插入图片描述成功查看到/etc/passwd
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值