当前位置: 首页 > article >正文

bash破壳漏洞分析(二)

1. Bash简介

1.1 定义

   Bash(GNU Bourne-Again Shell)是许多Linux发行版的默认Shell。

1.2 概述

   目前的Bash使用的环境变量是通过函数名称来调用的,导致漏洞出问题是以“() {”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。而其核心的原因在于在输入的过滤中没有严格限制边界,也没有做出合法化的参数判断。
   从阐述的漏洞原理可知,漏洞的根本原因存在于Bash的ENV命令实现上,因此漏洞本身是不能够直接导致远程代码执行的。如果达到远程代码执行的目的,必须要借助第三方服务程序作为媒介才能够实现,第三方服务程序也必须要满足众多条件才可以充当此媒介的角色。目前自己已验证第三方服务程序apache2便可充当此媒介,其CGI组件满足远程访问并调用Bash的ENV命令进行访问数据解析功能。具体如何实现,参见下面的原理图:CVE-2014-6271漏洞实现远程代码执行原理图。

2. 数据包分析

   Bash远程代码执行漏洞主要是以“() {”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令。所以在数据包的payload构造时我们需要构造一个以“() {”开头的环境变量以及一段可执行的shell脚本。通过python将请求数据发送至服务器,Apache的cgi组件远程访问并调用Bash的ENV命令进行访问数据解析功能,执行payload脚本。

2.1 探测数据包

   具体流程如下:

  • 在含有破壳漏洞的bash版本的虚拟机(Ubuntu12.04)中对Apac
http://www.lryc.cn/news/2417441.html

相关文章:

  • 织梦模板使用方法-安装教程
  • 信息安全系统和安全体系
  • kindle电子书和新闻推送及RSS资源…
  • pci-pcie总线序号分配
  • 安装Red Hat 8Linux操作系统
  • 突破MAC地址过滤连接网络
  • 如何使用W5300实现ADSL连接(一)
  • 基于AD7705的32路AD采集
  • Windows动态桌面原理
  • 旗胜限价房让我深刻体会到我很傻很天真
  • crash调试linux dump信息
  • UT AUSTINVILLA 3D
  • 主板维修从入门到精通
  • activity启动模式应用,如FLAG_ACTIVITY_CLEAR_TOP
  • 分支语句——switch-case
  • 毕业论文中的图表目录
  • 单片机定时器中断(之中断概念)
  • 使用nlite制作集成驱动windows安装光盘及实践心得
  • 关于sqlserver中SqlParameter的用法注意事项
  • ccbp 知识点
  • 服务器出现大量 TIME_WAIT,如何解决
  • JavaSE:实现象棋游戏
  • 古典密码(部分合集)
  • VC6.0常见错误之::Debug Assertion Failed!
  • C#使用FileSystemWatcher来监控指定文件夹,并使用TCP/IP协议通过Socket发送到另外指定文件夹
  • 虚拟机Linux IP地址更改
  • 13 | 如何为团队设定合理的目标呢?
  • input标签 各属性解释
  • 热插拔机制之udev和mdev
  • MFC教程(Visual C++ 6.0)|合集 |更新中