注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

碳基体

http://weibo.com/tanjiti

 
 
 
 
 

日志

 
 

五、TCP/IP协议分析-MongoDB认证协议  

2017-07-17 17:52:30|  分类: 协议分析 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

MongoDB数据报文格式
MongoDB采用的小端字节序,由消息头消息体组成
消息头为固定长度,由
消息长度 4个字节 
+requestID 4个字节
+responseTo 4个字节
+opCode 4个字节
消息体长度为消息长度-消息头长度16



query请求的组成
opcode为d4 07 00 00 4个字节
+query flags   4个字节
+fullcollectionname 变长,以00结尾,database name与collection name用2e分割 例如admin.$cmd
+numbertoskiip 4个字节
+numbertoreturn 4个字节
+document 变长 ,由document长度 4个字节 + elements组成 变长

reply响应的组成
opcode 为01 00 00 00 4个字节
+reply flags  4个字节
+cursor id 8个字节
+starting from 4个字节
+number returned 4个字节
+document 变长 ,由document长度 4个字节 + elements组成 变长

document的的组成
document长度 4个字节 
+ elements组成 变长

element的组成
element type 1个字节
+element name 变长,以00结尾
+element length 4个字节 (对于定长element,例如int32,boolean,datetime,double没有该字段)
+element value 长度由element type决定,
例如int32为4个字节;double为8个字节;datetime为8个字节,boolean为1个字节;string为变长,以00结尾;binary为变长,大端字节序



mongodb的认证方式
(1)scram-sha-1
认证请求:
五、TCP/IP协议分析-MongoDB认证协议 - 碳基体 - 碳基体
 其中payload部分like n,,n=tanjiti,r=MjAyNjgwMDMwMDcy
可以payload从中提取用户名

 认证响应:
五、TCP/IP协议分析-MongoDB认证协议 - 碳基体 - 碳基体
 
(2)chanllenge and Response
认证请求
五、TCP/IP协议分析-MongoDB认证协议 - 碳基体 - 碳基体
可以从user提取用户名 
 
 认证响应
五、TCP/IP协议分析-MongoDB认证协议 - 碳基体 - 碳基体
 


参考:
预告:六、TCP/IP协议分析-Redis认证协议分析
  评论这张
 
阅读(79)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017