开发者社区> 问答> 正文

为什么我的代码输出的是enumaration值而不是字符串?

我正在ruby中为CTF编写基于字典的攻击程序,但是我的输出打印了枚举值而不是字符串。我已经尝试过明确地将输出的变量转换为字符串,但这并没有改变任何东西。

require 'net/http'

def checkUsage()
if ARGV.length != 1

return false

end
return true
end

def generateUsername()

wordArray = Array.new
wordlist = File.open("words.txt", "r")

for word in wordlist

wordArray.push(word)

end

return wordArray.repeated_permutation(7).to_s

end

def generatePassword()

wordArray = Array.new
wordlist = File.open("words.txt", "r")

for word in wordlist

wordArray.push(word)

end

return wordArray.repeated_permutation(7).to_s

end

def requestAuthentication()

if(!checkUsage())

puts("Usage: frsDic <wordlist>")
return false

end

uri = URI("http://challenges.laptophackingcoffee.org:3199/secret.php")
req = Net::HTTP::Get.new(uri)

loop do

username = generateUsername()
password = generatePassword()

if req.basic_auth username, password
  puts"Username found: " + username
  puts"Password found: " + password
  break
else
  puts"Username failed: " + username
  puts"Password failed: " + password
end

end
end

requestAuthentication()

我原本希望打印出由bruteforce找到的用户名/密码字符串,但它只打印枚举值。

展开
收起
小六码奴 2019-04-09 17:14:26 2738 0
1 条回答
写回答
取消 提交回答
  • repeated_permutation如果您不提供块,则该方法返回一个Enumerator。如果您想要遍历所有排列,可以直接将块传递给它:

    wordArray.repeated_permutation(7) { |permutation| puts permutation }
    或者你可以在某个地方传递枚举器并调用.each它。

    word_enumerator = wordArray.repeated_permutation(7)
    word_enumerator.each { |permutation| puts permutation }

    2019-07-17 23:33:01
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载