• 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
    
    • 1
    • 2


    随后访问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服务出现问题
    • 完善权限管理机制,在设置环境变量的之前先做好检测,确保环境变量设置语句里面不会有一些越权的行为

  • 相关阅读:
    sqllab第三关通关笔记
    国际版腾讯云/阿里云:云解析DNS是什么
    Mybatis知识【Mybatis快速入门】第二章
    【Vim】单行与多行缩进
    LayUI之增加和查询
    CentOS 7 虚拟机开机后的优化操作
    使用docker搭建webtop
    关于计算机找不到d3dx9_43.dll,无法继续执行代码修复方法
    【知识】从音频CS4334 DAC转换的电路引发的一些知识
    FFplay文档解读-18-音频过滤器三
  • 原文地址:https://blog.csdn.net/xf555er/article/details/128201384