0

我不确定是否应该将其放在安全性或 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

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

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

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

而且我找不到谷歌过滤这个的方法。那么周围有任何 VbScript Guru 吗?

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

4

0 回答 0