bash代码注入的安全漏洞分析

bash的环境变量

环境变量是操作系统运行shell中的变量,很多程序的运行需要获取系统的环境变量参数。具体赋值格式如下:

$ var="hello world"

然后你就可以使用这个变量了,但是只是局部变量,即是当前进程可以用,若当前进程的子进程或者其他进程需要用,需要用到        export将本进程的变量copy到其他进程。丽日如下测试

没加export,当新建一个bash,再输出$var 就不能获取环境变量

$ var="hello coolshell"
$ echo $var
hello coolshell
$ bash
$ echo $var

所以得加个export

$ export var="hello coolshell"

bash的函数

bash与上面得环境变量同理

$ foo(){ echo "hello coolshell"; }
$ foo
hello coolshell
$ bash
$ foo
bash: foo: command not found

同理, 加个export -f

$ foo(){ echo "hello coolshell"; }
$ foo
hello coolshell
$ export -f foo
$ bash
$ foo
hello coolshell

bash的bug

先看如下测试代码:

$ export X='() { echo "inside X"; }; echo "outside X";'

再用env 查看创建出来的环境变量

$ env
X=(){ echo "inside X"; }; echo "outside X";

当我们在当前的bash shell进程下产生一个bash的子进程时,新的子进程会读取父进程的所有export的环境变量,并复制到自己的进程空间中,很明显,上面的X变量的函数的后面还注入了一条命令:echo “outside X”,这条命令会在父进程向子进程复制的过程中被执行。

$ export X='() { echo "inside X"; }; echo "outside X";'
$ bash
outside X

这就是bash的bug—— 函数体外面的代码被默认地执行了

实践

要找到网站运行bash的CGI文件,网上搜索,网站的默认路径为/cgi-bin中

然后用bp抓包,在Connection中加入bash指令操作,创建环境变量顺便执行查看key

拿到key

参考链接:https://blog.csdn.net/jingxia2008/article/details/39637085

墨者 - Bash漏洞分析溯源相关推荐

  1. 墨者Bash漏洞分析溯源题解

    这个漏洞是看别人的思路解出来的,因为在打开页面后,我扫描不出来其他东西,惭愧 后台存在一个地址,是http://219.153.49.228:49581/cgi-bin/poc.cgi 访问这个地址 ...

  2. 墨者靶场 初级:Bash漏洞分析溯源

    墨者靶场 初级:Bash漏洞分析溯源 题目 背景介绍 实训目标 解题方向 解题步骤 题目 背景介绍 安全工程师"墨者"对一单位业务系统进行授权测试,在测试过程中,发现存在bash命 ...

  3. 墨者学院-Bash漏洞分析溯源

    Bash漏洞分析溯源 难易程度:★★ 题目类型:命令执行 使用工具:FireFox浏览器.wwwscan 1.打开靶场,根据题目思路找poc.cgi. 2.使用wwwscan扫一下 发现有目录/cgi ...

  4. 墨者学院 - Bash漏洞分析溯源

    bash漏洞技术层面分析 漏洞起源: 漏洞信息最早来源于国外知名漏洞网站exploit-db下的第34765篇漏洞报告,其中出现了一条验证命令: env x='() { :;}; echo vulne ...

  5. Bash漏洞分析溯源

    漏洞简介 Bash(GNU Bourne-Again Shell)是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令.Bash还能从文件中读取命令,这样的文件称为脚本. 1.bash漏 ...

  6. [ 墨者学院 ] 命令执行——Bash漏洞分析溯源

    0x00.题目描述: 背景介绍 安全工程师"墨者"对一单位业务系统进行授权测试,在测试过程中,发现存在bash命令执行漏洞. 实训目标 1.了解bash: 2.了解Bash远程命令 ...

  7. Bash漏洞分析溯源 cgi文件 (CVE-2014-6271) --墨者学院

    01 背景介绍 Bash脚本在解析某些特殊字符串时出现逻辑错误导致可以执行后面的命令,在一些cgi脚本中,数据是通过环境变量来传递的,这样就会形成该漏洞: bash通过以函数名作为环境变量名,以&qu ...

  8. 墨者学院-登录密码重置漏洞分析溯源

    墨者学院-登录密码重置漏洞分析溯源 此题我是这么做出来的,首先用我已知的手机号进行重置密码操作,然后再开一个网页,填上嫌疑人的手机号,并发送短信,然后也给已知的手机号发送验证码 再给嫌疑人的复制过去, ...

  9. 墨者靶场 入门:WebShell文件上传漏洞分析溯源(第1题)

    墨者靶场 入门:WebShell文件上传漏洞分析溯源(第1题) 题目 背景介绍 实训目标 解题方向 解题步骤 题目 背景介绍 某公司内部资料分享平台存在一个文件上传页面,为了保证服务器的安全,现在安全 ...

最新文章

  1. 再见 Python,Hello Julia!
  2. Linux C编程--打开和关闭流
  3. 全球及中国工业设计市场发展战略方向与建设模式分析报告2022年
  4. 2019,GMIS归来!杨强、吴恩达等全球重磅嘉宾共话数据智能
  5. Centos7.5 VMtools的安装与卸载
  6. JEECG开源团队,欢迎技术爱好者加入
  7. 保利管道微服务1_.netcore 3.1高性能微服务架构:webapi规范
  8. 负载均衡器如何在服务器之间分配客户端流量?
  9. coreos安装php,window_win10系统运行wps无响应的解决方案,wps是我们在日常办公中经常会 - phpStudy...
  10. 使用AIR中的File对象
  11. POJ 2479 Maximum sum
  12. Julia对矩阵进行预先赋值
  13. 幅频特性和相频特性的物理意义
  14. BLP防数据泄露安全操作系统:道里云公司参展英特尔北京IDF峰会产品介绍(二)
  15. Java反射专题笔记
  16. linux防火墙关闭 重启 开启、防火墙开放端口
  17. 语音处理工具 sox librosa
  18. GIT | GIT命令大全
  19. java 发送邮件和读取邮件(163邮箱为例)
  20. TIME_WAIT状态存在的意义

热门文章

  1. 1.7 运维可以转行什么
  2. Golang:ini文件读取,go-ini
  3. 华为与思科链路捆绑/链路聚合/链路汇聚
  4. 【数据分享】1901-2021年1km分辨率逐月总降水栅格数据(全国/分省/免费获取)
  5. 机器人独立关节PD控制(控制小白入门)
  6. 机器学习笔记系列---集成学习
  7. 伪随机与真随机有什么不同?
  8. Spring事务剖析-DataSourceTransactionManager
  9. org.apache.catalina.LifecycleException: Failed to start component
  10. EGE基础入门篇(七):组合图形