LINUX漏洞复现之ShellShock漏洞

简介

ShellShock漏洞, 中文称为"破壳漏洞", 是Unix Shell中的安全漏洞

在一些网络服务器的部署中, 使用bash来处理某些请求, 允许攻击者通过低版本的bash执行任意Shell命令

此漏洞在调用BashShell之前使用payload创建环境变量, 这些环境变量包含Shell代码, 在Shell被调用后代码会被执行


漏洞原因

bash使用的环境变量是通过函数名称来调用的,以"(){"开头通过环境变量来定义,而在处理这样的恶意的函数环境变量时,并没有以函数结尾 "}" 为结束,而是执行其后的恶意shell命令


漏洞范围

  • bash版本<=4.3

环境搭建

Vulhub官方文档: https://vulhub.org/#/environments/bash/CVE-2014-6271/

进入vulhub的shellshock目录: cd vulhub/bash/shellshock, 执行如下命令

docker compose build
docker compose up -d


随后访问http://192.168.47.131:8080, 若出现如下图所示页面, 表示靶场搭建成功

1


漏洞利用

该漏洞靶场有两个页面, 分别是http://192.168.47.131:8080/victim.cgi和http://192.168.47.131:8080/safe.cgi, 其中victim.cgi是bash4.3版本生成的页面, 而safe.cgi是最新版bash生成的页面

访问http://192.168.47.131:8080/victim.cgi, 使用burpsuite抓包修改User-agent字段的值为() { :;};echo;/usr/bin/whoami, 页面回显命令执行结果

payload还可以填写在其他请求头字段上, 不是只能填写在User-agent字段

1


而在最新版本Bash的safe.cgi页面中, 该漏洞已经无法利用了

1

1


安全防护

  • 禁用CGI, 但可能会导致Web服务出现问题
  • 完善权限管理机制,在设置环境变量的之前先做好检测,确保环境变量设置语句里面不会有一些越权的行为

posted @ 2022-12-06 13:28  亨利其实很坏  阅读(246)  评论(0编辑  收藏  举报