【问题标题】:can not edit a value of a binary row in sql无法在 sql 中编辑二进制行的值
【发布时间】:2020-07-30 12:27:03
【问题描述】:

您好,我忘记了管理员密码,但我可以连接到 sql 我尝试替换另一个用户密码以恢复 但出现此错误:

pass 字段是这样的:

【问题讨论】:

  • 使用良好的安全模型应该不可能直接编辑用户名和密码。使用应用程序的密码恢复过程;不管那是什么。
  • 试图通过安全手段破解您的道路并不是一条可行的道路。所以你的问题变成了“我如何重新获得对服务器实例的管理访问权限”。
  • @SM或者不是SQL Server的LOGIN/USER信息; sys.principles 和 sys.users 没有这些列。这显然是应用程序的用户凭据信息,因此只有了解应用程序的人才会知道密码恢复过程是如何工作的。
  • @SMor 我有可以访问该表的 sql sa,所以它不会破解 sql server
  • “替换密码”是黑客行为

标签: sql sql-server tsql sql-update


【解决方案1】:

你在找这个吗?

UPDATE [my_users_table]
SET [pas] = CAST('newpass' AS VARBINARY(MAX))
WHERE [nam] = 'admin'

打开新窗口并尝试像这样设置密码。无论如何,如果数据被加密然后以二进制形式存储,那么在设置新密码之前,您首先需要获得一个有效的加密二进制。

UPDATE [my_users_table]
SET [pas] = 0x0DE3446D8F782E9B
WHERE [nam] = 'admin'

【讨论】:

  • 我真的希望这不起作用;这意味着 OP 正在存储(与)纯文本密码一样好,这是一个 HUGE 安全漏洞。不应该有人能够使用SELECT CONVERT(nvarchar(100),pas) FROM SomeTable;查看每个用户的密码
猜你喜欢
  • 2011-05-08
  • 2019-04-27
  • 2013-11-20
  • 1970-01-01
  • 2020-03-21
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多