故意故意对页面进行编码

我正在尝试编写一个故意易受命令注入攻击的页面。这是针对培训环境的。这是我到目前为止的代码:


public ActionResult CommandInjection()

    {

        string domain = Request.QueryString["domain"];

        ViewBag.Domain = domain;


        ProcessStartInfo psi = new ProcessStartInfo("nslookup.exe", domain)

        {

            UseShellExecute = false,

            CreateNoWindow = true,

            RedirectStandardOutput = true

        };


        var proc = Process.Start(psi);

        string result = proc.StandardOutput.ReadToEnd();


        ViewBag.Msg = "This page is vulnerable to Command Injection";

        ViewBag.Result = result;


        return View();

    }

看到正常的域查询请求时,它似乎运行良好。


但是,当它看到这样的请求时:


http://localhost:50159/Home/CommandInjection?domain=www.google.com+%26+dir 它返回一个空白。


我期望的是它将返回域查找的结果,然后返回dir命令的输出。


C#


九州编程
浏览 122回答 2
2回答

慕运维8079593

在这种情况下,用脚拍自己的脚不是那么容易,但是您可以像这样:ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", "/c \"nslookup.exe " + domain + "\""){    UseShellExecute = false,    CreateNoWindow = true,    RedirectStandardOutput = true};
打开App,查看更多内容
随时随地看视频慕课网APP