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, 若出现如下图所示页面, 表示靶场搭建成功
漏洞利用
该漏洞靶场有两个页面, 分别是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字段
而在最新版本Bash的safe.cgi页面中, 该漏洞已经无法利用了
安全防护
- 禁用CGI, 但可能会导致Web服务出现问题
- 完善权限管理机制,在设置环境变量的之前先做好检测,确保环境变量设置语句里面不会有一些越权的行为
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构