xp_cmdshell是否可以在存储的过程中安全使用,是否存在确实没有其他选择的情况?换句话说,它在存储过程中的使用是否总是被标记为安全问题(正如著名的源代码分析器所建议的那样)?
换句话说,您是否同意以下陈述(直接引用)?
函数xp_cmdshell无法安全使用。它不应该被使用。
xp_cmdshell是否可以在存储的过程中安全使用,是否存在确实没有其他选择的情况?换句话说,它在存储过程中的使用是否总是被标记为安全问题(正如著名的源代码分析器所建议的那样)?
换句话说,您是否同意以下陈述(直接引用)?
函数xp_cmdshell无法安全使用。它不应该被使用。
关闭 xp_CmdShell 有点像给腐烂的肉盖上一层面纱。它给餐桌带来了一种虚假的安全感,苍蝇仍然可以吃到肉。请允许我解释一下。
谁可以使用 xp_CmdShell?那就对了。只有具有“SA”权限的人/应用程序登录或您犯了授予代理的可怕错误的人才能使用它。
下一个问题。如果您关闭了 xp_CmdShell,那么只有谁可以重新打开它?再次正确!只有具有“SA”权限的人/应用程序才能重新打开它。
那么,xp_CmdShell 存在安全风险的真正问题是什么?答案是 xp_CmdShell 不是安全风险。安全性差是唯一的安全风险。如果黑客或恶意内部用户使用“SA”权限进入系统,那么他们可以立即打开 xp_CmdShell。是的,该操作被记录下来,但这仅提供了从一开始就严重缺乏安全性的书面证词。
关闭 xp_CmdShell 对安全没有任何帮助,只是为黑客代码的那一部分提供了重新打开运行的机会。
我再说一遍。xp_CmdShell 没有安全风险。只有糟糕的安全性才是安全风险。修复您的安全性,然后打开 xp_CmdShell。这是一个很棒的工具,由于糟糕的安全实践和神话,你错过了它。
它总是有风险的。应始终对其进行审查。可以适当缓解。
有合法用途,有时是必需品,但请密切注意您的输入!
“拥有权利的同时也被赋予了重大的责任。” 话虽如此,我认为这xp_cmdshell是从雷德蒙德出发的最糟糕的安全列车之一。
编辑:2020 年,作为 10 多年的渗透测试员——xp_cmdshell仍然是我遇到的最可怕的安全风险之一,因为它具有以下方面的最佳组合;广泛传播,被银行等重要企业使用,影响最大。SQLmap 可用于获取 SA 并重新启用 xp_cmdshell... 在 webapp 中仅使用 SQL 注入。
作为一个工程师对另一个工程师,谢谢你微软——没有你我真的不可能得到这些外壳。
我认为“它不应该被使用”可能是一个很好的建议。这不是一个明确的“它总是不安全的”,而是承认 xp_cmdshell 是危险的,任何使用它都是值得关注和仔细审查的理由。
即使您认为自己知道如何避免安全风险,xp_cmdshell 仍然可能不是最好的工具。奇怪的是,有一个更好的解决方案(一个碰巧风险较小的解决方案)。