0%

利用右键菜单执行任意powershell命令

 如何使用文件路径来让右键->在此打开powershell弹出一个计算器

原理

 Windows的右键菜单里会集成许多快捷方式, 当用户使用右键菜单时会通过注册表中预先约定的规则传递路径相关的参数.
 自然可以想到, 如果传入的路径名中出现了可以闭合命令的字符就能够”逃逸”出路径的范围, 作为额外的参数传入程序.
 可惜注册表中常见的右键菜单项多是用"来包裹的, 然后Windows中限制了路径中不能出现"等特殊符号, 由此大多数的右键菜单项的命令不能从这里逃逸出来.
 但是Windows中的powershell的参数却是使用'来包裹的. 大概是因为powershell中被单引号包裹的参数是作为文本传入的, 为了安全就用了单引号.
 由此, ;'都不在Windows的屏蔽列表里, 我们只要利用这两个符号就能逃逸出参数来执行命令了.

复现

设置文件夹名称

 新建一个文件夹, 修改名称为'; calc.exe;', 然后进入这个文件夹

直接弹

 进入恶意路径文件夹后只要按shift->右键->在此处打开powershell就可以在打开powershell的同时弹出一个计算器. 只要路径中出现了上面的逃逸代码都可以执行命令.

用处

 触发的条件限制过高, 大概也就只能拿来玩玩. 或者用来持久化?