- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在构建一个客户端,不使用任何库,只是为了真正理解该协议(protocol),当我将计算出的身份验证数据包发送到 MySQL 服务器时,我对访问拒绝回复感到困惑。 Mysql 服务器只是在我的计算机上运行的本地服务器,用于测试目的。这是我发送的信息:
测试密码是“peanut”。
第 1 阶段哈希 = b14ab480028768cb748fd97de56144a304eb8a1a
第 2 阶段哈希 = fd62797ed464c2843942a9167cc0521779d68862 - 这是正确的,但数据库中没有 *。
盐和第 2 阶段哈希 = rC8/$a?Vr\W|.jN)~cVcfd62797ed464c2843942a9167cc0521779d68862
SHA1(盐 + 第 2 阶段哈希值)异或第 1 阶段哈希值 = 4B19199ECEB929469EA89C0E942D8D5B9ACBE237
发送到服务器进行身份验证的十六进制字符串:
\x3A\x00\x00\x01 - 标准 header (有效负载长度/序列号)
\x02\x04\x80\x00 - 兼容性标志
\x00\x00\x00\x01 - 最大数据包大小
\x08 - 字符集
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 - 23 字节填充符
\x72\x6F\x6F\x74\x00 - 用户名零终止
\x14 - token 长度(20 字节)
\x4B\x19\x19\x9E\xCE\xB9\x29\x46\x9E\xA8\x9C\x0E\x94\x2D\x8D\x5B\x9A\xCB\xE2\x37 - token
当我发送此字符串时,服务器仅发出拒绝访问的 #28000 错误。
这可能是访问权限问题吗?远程用户试图获得 root 访问权限,我需要启用什么功能吗?
我已经更改了连接超时设置 wait_timeout/connect_timeout 等,但仍然不高兴,这些设置为 60 秒。
我不确定是否应该使用星号来计算 SHA1(盐 + 第 2 阶段哈希值),因为在数据库中,它在密码前显示一个 *。两种方法都试过了,还是不行。
我现在已经没有想法了,我唯一能想到做的另一件事就是编写另一个程序,它将像 Mysql Server 一样处理客户端 token ,但我想我应该先在这里仔细检查一下。
我已经为此工作了一段时间,但很困惑。
非常感谢任何帮助。我通常不会在论坛上发帖,所以这是一种新的体验,如果我没有遵守礼仪,抱歉。
问候
詹姆斯
最佳答案
如果不亲自查看协议(protocol)文档,很难发现这里有任何错误。它可能是从字节顺序到错误的填充、长度和其他计算等的任何内容。服务器理所当然地没有提供有关登录失败原因的更多详细信息,因为这会将信息泄露给潜在的攻击者。
我建议您获取 MySQL 源代码并查看他们如何在命令行应用程序中执行此操作。请参阅http://dev.mysql.com/doc/internals/en/guided-tour.html一些介绍和下载链接。
除此之外,始终可以选择使用 Wireshark 记录网络流量,以查看库存 mysql 客户端发送的内容并将其与您拥有的内容进行比较。这可能有助于找出填充等。请注意,如果您在 Windows 上工作,则在本地主机上捕获流量可能会出现问题,因为 IIRC Windows 以某种方式缩短流量,因此它不会通过网络接口(interface)让 Wireshark 看到。在这种情况下,您可能必须在虚拟机或不同的计算机上设置 MySQL 服务器。
关于MySQL 协议(protocol)客户端/服务器身份验证 - 来自客户端的身份验证数据包的 token 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16608572/
我正在使用SQL Server 2008 R2,并且想创建一个触发器。 对于每个添加(仅添加),将像这样更新一列: ABC-CurrentYear-AutoIncrementCode 例子: ABC-
是否可以在显示最终一致性的数据存储中创建/存储用户帐户? 似乎不可能在没有一堆架构复杂性的情况下管理帐户创建,以避免可能发生具有相同 UID(例如电子邮件地址)的两个帐户的情况? 最终一致性存储的用户
您好, 我有一个带有 Identity 的 .NetCore MVC APP并使用 this指导我能够创建自定义用户验证器。 public class UserDomainValidator : IU
这与以下问题相同:HiLo or identity? 我们以本站的数据库为例。 假设该站点具有以下表格: 帖子。 投票。 注释。 使用它的最佳策略是什么: 身份 - 这是更常见的。 或者 HiLo -
我想将 Blazor Server 与 ASP.NET Identity 一起使用。但我需要使用 PostgreSQL 作为用户/角色存储,因为它在 AWS 中。 它不使用 EF,这是我需要的。 我创
我正在开发一个 .NET 应用程序,它可以使用 Graph API 代表用户发送电子邮件。 提示用户对应用程序进行授权;然后使用获取的访问 token 来调用 Graph API。刷新 token 用
我使用 ASP.NET 身份和 ClaimsIdentity 来验证我的用户。当用户通过身份验证时,属性 User.Identity 包含一个 ClaimsIdentity 实例。 但是,在登录请求期
所以我在两台机器上都安装了 CYGWIN。 如果我这样做,它会起作用: ssh -i desktop_rsa root@remoteserver 这需要我输入密码 ssh root@remoteser
我尝试在 mac osx 上的终端中通过 telnet 连接到 TOR 并请求新身份,但它不起作用,我总是收到此错误消息: Trying 127.0.0.1... telnet: connect to
我正在开发一个 .NET 应用程序,它可以使用 Graph API 代表用户发送电子邮件。 提示用户对应用程序进行授权;然后使用获取的访问 token 来调用 Graph API。刷新 token 用
我正在开发一项服务,客户可以在其中注册他们的 webhook URL,我将发送有关已注册 URL 的更新。为了安全起见,我想让客户端(接收方)识别是我(服务器)向他们发送请求。 Facebook和 G
在 Haskell 中,有没有办法测试两个 IORef 是否相同?我正在寻找这样的东西: IORef a -> IORef a -> IO Bool 例如,如果您想可视化由 IORef 组成的图形,这
我是 .NET、MVC 和身份框架的新手。我注意到身份框架允许通过注释保护单个 Controller 操作。 [Authorize] public ActionResult Edit(int? Id)
我有一列具有身份的列,其计数为19546542,我想在删除所有数据后将其重置。我需要类似ms sql中的'dbcc checkident'这样的内容,但在Oracle中 最佳答案 在Oracle 12
这是我用来创建 session 以发送电子邮件的代码: props.put("mail.smtp.auth", "true"); props.put("mail.smtp.starttls.enabl
我想了解 [AllowAnonymous] 标签的工作原理。 我有以下方法 [HttpGet] public ActionResult Add() { return View(); } 当我没
在使用沙盒测试环境时,PayPal 身份 token 对某些人显示而不对其他人显示的原因是否有任何原因。 我在英国使用 API,终生无法生成或找到 token 。 我已经遵循协议(protocol)并
我对非常简单的事情有一些疑问:IDENTITY。我尝试在 phpMyAdmin 中创建表: CREATE TABLE IF NOT EXISTS typEventu ( typEventu
习语 #1 和 #5 是 FinnAPL Idiom Library两者具有相同的名称:“Progressive index of (without replacement)”: ((⍴X)⍴⍋⍋X⍳
当我第一次在 TFS 中设置时,我的公司拼错了我的用户名。此后他们将其更改为正确的拼写,但该更改显然未反射(reflect)在 TFS 中。当我尝试 checkin 更改时,出现此错误: 有没有一种方
我是一名优秀的程序员,十分优秀!