如何解决ProcessStartInfo.ArgumentList是否容易受到OS命令注入的攻击?
有一些C#代码(.NET Core 3.1平台):
var userInput = "8.8.8.8";
var process = new System.Diagnostics.Process();
var info = new System.Diagnostics.ProcessStartInfo
{
FileName = "ping",};
info.ArgumentList.Add(userInput);
info.ArgumentList.Add("-n");
info.ArgumentList.Add("8");
process.StartInfo = info;
process.Start();
Console.ReadLine();
是否可以创建用户输入(修改userInput变量)来修改PING工具的行为(例如,注入“ -w 999999”参数)?
解决方法
是否可以创建用户输入来修改PING工具的行为(例如,注入“ -w 999999”参数)?
是
ProcessStartInfo.ArgumentList是否容易受到OS命令注入的攻击?
是故意的。是的,但我认为这不是问题。用参数启动工具是正确的选择吗?
,我的问题很可能被误解了。 我想知道,如果“ userInput”变量为其他变量,是否可以执行OS Command注入。 我的答案是很可能不会,因为在网络核心的深处,过程参数被双引号引起,并且参数中所有出现的引号都被换码了。
如果我错了,请更正。 https://github.com/dotnet/corefx/blob/master/src/Common/src/CoreLib/System/PasteArguments.cs
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。