Windows 在批处理中利用未正确转义的字符串
在Windows软件X中,您创建的每个链接都会自动转换为可单击的对象 这里有趣的和安全相关的部分是,像“http://%COMPUTERNAME%.com/”这样的链接将打开标准浏览器,调用例如http://NR57005-PC.com/“,这当然是一个信息泄露漏洞,因为所有环境变量都已转换 现在我的问题是,这种行为是否会导致更严重的问题,例如代码执行漏洞,这将大大增加快速修复的重要性 您对如何证明这不仅是一个披露问题,而且是一个严重的漏洞有何建议?攻击者有可能注入批处理命令吗 我已经玩过管道、符号和引号,但到目前为止我没有发现任何有趣的东西 提前感谢, 帕特里克 编辑: 为了澄清,我的方法如下: 系统必须执行类似于Windows 在批处理中利用未正确转义的字符串,windows,security,batch-file,escaping,dos,Windows,Security,Batch File,Escaping,Dos,在Windows软件X中,您创建的每个链接都会自动转换为可单击的对象 这里有趣的和安全相关的部分是,像“http://%COMPUTERNAME%.com/”这样的链接将打开标准浏览器,调用例如http://NR57005-PC.com/“,这当然是一个信息泄露漏洞,因为所有环境变量都已转换 现在我的问题是,这种行为是否会导致更严重的问题,例如代码执行漏洞,这将大大增加快速修复的重要性 您对如何证明这不仅是一个披露问题,而且是一个严重的漏洞有何建议?攻击者有可能注入批处理命令吗 我已经玩过管道、
firefox.exe“http://%COMPUTERNAME%.com/”
的命令,否则系统变量将无法转换。
现在,因为我知道有一些未过滤的批处理调用正在进行,我认为可以转义参数字符串。例如,像http://google.com/“¬epad&”
可能会产生firefox.exe“http//google.com”¬epad&“
,这将打开记事本,作为代码执行工作的概念证明。不幸的是,这一逃跑尝试没有成功。因此,我想知道是否还有其他技巧可以获得shell访问权限或类似权限。- 攻击者必须注册并控制服务器
。为此,他必须事先了解主机名的相关信息NR57005-PC.com
- 显示的攻击面将取决于用于检索链接的用户代理,这将取决于批处理文件处理和/或系统上配置的默认浏览器
- 假设使用Internet Explorer,您的攻击面将从您预期的批处理文件中减少,因为网站将不再位于
区域,而是本地计算机
像您正在考虑的狡猾伎俩将不起作用Internet区域。
- 剩下的就是使用典型的IE漏洞来获得控制权。批处理文件为您提供了访问恶意网站的机会,而无需依赖用户
2-认识到这不是一个严重的漏洞,然后继续前进。攻击者可以通过精心编制的社会工程电子邮件更容易地获得相同的访问/信任。攻击者不必事先知道,就像我的情况一样,可以创建类似“”的链接。如果受害者点击这个链接,如果攻击者记录变量a和b,他就会泄露私人信息。那么env变量在URI中,而不是你在问题中描述的主机名中?攻击者创建链接并将变量放在他想要的任何地方。当受害者收到链接并点击它时,这些变量会被它们的真实值所取代(在受害者电脑上)。因此,是的,env变量可以在链接中的任何位置。如果您有这种控件,就不需要关心环境变量的扩展。这些技巧应该有效。在windows上它是&。记事本和记事本。将FTP命令回送到文件,使用-s开关调用FTP以获取exe,然后运行exe。如果你真的没有任何限制,那应该是可行的。谢谢你的想法,但这正是重点。不幸的是&&技巧不起作用,任何尝试使用管道或试图通过添加引号来转义的行为也不起作用。它们被“正确”处理,仍然是url的一部分,并且显然没有被解释为批处理语法。那我还有什么其他的把戏可以试试吗?