
CVE-2024-24576的概念验证漏洞利用,演示通过BAT文件参数注入在Windows上实现任意命令执行。包含Python和Go实现,用于测试和教育
针对此漏洞的快速 POC,漏洞披露见 https://flatt.tech/research/posts/batbadbut-you-cant-securely-execute-commands-on-windows/
运行脚本后,它会要求传递一个参数给 BAT 文件。
在截图中可以看到,通过添加双引号,Windows 用于调用 cmd 的底层 API 可以被绕过,从而实现任意命令执行,本例中我们打开了 calc.exe。

显然,这段代码本身并非恶意,它只是用于演示:即使经过清理的输入(除非你移除所有双引号),如果它调用的是 BAT 文件,也可能以这种方式被滥用,从而可能影响面向公众的 Web 应用程序。
视频演示 https://youtu.be/xjL4pdf7pJ0
仍在进行中 还有其他语言被标记为存在相同问题。我已经测试了 Ruby,但似乎不受影响。我将继续测试,以找出问题所在。
Golang 代码尚待测试。Ruby 代码似乎不受相同利用路径的影响。
致谢: