漏洞简介
Bash(GNU Bourne-Again Shell)是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令。Bash还能从文件中读取命令,这样的文件称为脚本。
1.bash漏洞利用的版本号为4.3或更早的版本。产生漏洞的原因是在bash解析shell环境变量时,如果构造了特殊的值,比如说:(){。BASH处理这样的“函数环境变量”的时候,并没有以函数结尾“}”为结束,而是一直执行其后的shell命令。
2.cgi脚本就是用来执行bash脚本的,所以一定要找到一个cgi文本。
3.环境变量可以是user-agent或者connection,也可以直接用curl来创建一个环境变量。关于使用curl工具,以及反弹一个bash shell 的方法
漏洞复现
根据墨者学院的提示,进行后台扫描,找有关cgi的文件,访问有cgi的页面
用brup拦截下页面请求,根据漏洞利用exp可知,在user-agent或者connection处插入:
() { :;}; echo; /bin/ls /
修改exp,
() { :;}; echo; /bin/cat /key.txt