如何停止SendKeys注入攻击?

时间:2013-07-01 11:02:50

标签: security vbscript code-injection sendkeys

我不确定是否应将其置于安全性或stackoverflow stackexchange中。 最近我被分配来修复/调试脚本问题。该脚本将自动以管理员用户身份登录用户。然而,有人发现当用户有特殊字符时会发生奇怪的事情,因此他们被禁止了。

所以我开始使用这些知识进行调试,我自己是一名安全研究人员,立即想到了漏洞的一种意义(你知道奇怪的人物会做一些奇怪的事情(XSS,SQlInjection,FormatString攻击等等)。)

所以在看到代码后,我注意到了这个漏洞'瞬间。

dim objShell, WshShell
Set args = WScript.Arguments
user = args.Item(0)
passwd = args.Item(1)
set objShell = CreateObject("WScript.Shell")    
oShell.run "C:\LoginSystem\Login.exe"
objShell.sendkeys user
wscript.sleep 1000
objShell.sendkeys passwd

user和passwd varibles是可注射的!我可以成功地获得一个新的管理员用户使用这个和大量的修补(Cntl + Esc - > Run - > cmd - > useradd)。

现在我想确保其他人(不受信任的人)不能进行同样的攻击。如何转义或过滤sendkeys命令?要使它键入%^ etc键而不是评估它们。

我只看到了这个: http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.send(v=vs.71).aspx

我找不到通过Google过滤此方法的方法。那么任何VbScript Guru都在附近吗?

扩展问题并使问题更容易理解: 我必须找到一种方法来允许该程序运行它在启动时弹出一个窗口,我需要使用他们自己提供的帐户登录用户。我可以使用spy ++并选择那种方式,但这意味着我将C ++源代码整合到他们不了解的服务器上。

0 个答案:

没有答案