我正在尝试编写一个故意易受命令注入攻击的页面。这是针对培训环境的。这是我到目前为止的代码: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#
2 回答
慕运维8079593
TA贡献1876条经验 获得超5个赞
在这种情况下,用脚拍自己的脚不是那么容易,但是您可以像这样:
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", "/c \"nslookup.exe " + domain + "\"")
{
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true
};
- 2 回答
- 0 关注
- 121 浏览
添加回答
举报
0/150
提交
取消