一个被遗忘的批处理漏洞

今天AI(qwen和DeepSeek)讨论我写的批处理脚本时偶然发现了一个批处理的漏洞,上网搜索搜索不到相关联的结果……这个漏洞就是set /p注入漏洞

本篇文章将会从他的漏洞复现方法、危害以及如何防御这3个方面为您介绍此漏洞

⚠ 本文仅用于教育目的,禁止用于非法攻击。因滥用本文技术造成的法律责任由实施者自负。

1.漏洞复现方法

在批处理文件或命令行中输入:

set /p bl="请输入:"
echo %bl%
2.危害

在有漏洞(set /p并用echo %变量%)的代码中可以执行任意代码

C:\Users\HP>set /p bl=""
& echo 12345 &

C:\Users\HP>echo %bl%
ECHO is on.
12345

可见echo 12345被执行了! 也就证明一些高危命令也能被执行,如format/curl下载文件等都能完成!

3.如何防御

1.开启延时变量,这样如&的字符就不会被解析了

2.[推荐]用choice命令处理选择,只能输入指定范围内的(如Y/N),输入其他的无效,很安全。

类似文章