Speld Stemwijzer 2019 [Puzzel]

Pagina: 1
Acties:

Acties:
  • +1 Henk 'm!

  • OlafH
  • Registratie: Maart 2019
  • Laatst online: 19-08 12:50
Vorig jaar poste @nullr0ute een topic over de Stemwijzer puzzel van de Speld.

Dit jaar hebben ze opnieuw een puzzel klaarstaan. Denk ik dan vanwege de tip.

spoiler:
Ik heb al gevonden dat er een admin page is https://stemwijzer.speld.nl/admin/login


spoiler:
Daarnaast lijkt de username 'admin' te zijn (afgezien het feit dat er staat email adress). Waarom denk ik dat omdat de request er significant langer over doet (300ms+) in vergelijking met willekeurige andere usernames.


Zijn er al mensen verder gekomen? Want ik loop helemaal vast.

Acties:
  • 0 Henk 'm!

  • nullr0ute
  • Registratie: December 2010
  • Laatst online: 02-10 19:29
Goed gespot! Ik had 'm nog niet gevonden.

Heb 't een en ander geprobeerd, maar nog niet verder gekomen.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 26-09 12:50
Is hier iemand nog verder mee gekomen? Of werkt het ondertussen niet meer.

Acties:
  • 0 Henk 'm!

  • Sublimity
  • Registratie: December 2012
  • Laatst online: 10-02-2024
Ik ben ermee bezig geweest, maar niks verder gekomen. Ik heb een timing attack op het wachtwoord geprobeerd, maar zonder resultaten helaas.

Acties:
  • 0 Henk 'm!

  • OlafH
  • Registratie: Maart 2019
  • Laatst online: 19-08 12:50
Helaas is nog niemand verder gekomen, ik heb nog wel een paar hints maar daar kwam ik eigenlijk ook niet veel verder mee.

spoiler:
Na nog een keer dirbusten kwam ik een dump file tegen in https://stemwijzer.speld.nl/static/downloads/dump

hierin staan 1000 posts en 5000 username + email address + MD5 hashed wachtwoorden. Het wachtwoord van admin@speld.nl (Hoofdredacteur) kan met behulp van een rainbowtabel worden omgedraaid naar 'metallica' dit is echter niet het wachtwoord.

Wat tevens opvalt is dat admin@speld.nl wat mij betreft sowieso niet de username kan zijn in verband met significant langzamere request met de username admin. Door dat veld te fuzzen kom je op 6 errors uit die lijken te leiden tot bcrypt encryptie. Maar ook daar heb je weinig aan.


Zoveel spoiler wel.

spoiler:
Wat ook interessant is als je via een curl bijvoorbeeld '["a"]' stuurt krijg je een SQL statement terug. Deze lijkt echter correct geparametriseerd te zijn en ook daar kom je niet verder mee.

Deze curl statement:
curl 'https://stemwijzer.speld.nl/admin/login' -H 'Pragma: no-cache' -H 'Origin: https://stemwijzer.speld.nl' -H 'Acc
ept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9,th-TH;q=0.8,th;q=0.7,nl;q=0.6' -H 'User-Agent: Moz
illa/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36' -H 'Co
ntent-Type: application/json' -H 'Accept: */*' -H 'Cache-Control: no-cache' -H 'X-Requested-With: XMLHttpRequest' 'Connect
ion: keep-alive' -H 'Referer: https://stemwijzer.speld.nl/admin/login' --data-binary '{"username":["a"],"password":"met
allica"}' --compressed

Geeft deze output:

{"data":"(psycopg2.ProgrammingError) operator does not exist: character varying = text[]\nLINE 3: WHERE users.username = ARRAY['a'] \n ^\nHINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.\n [SQL: 'SELECT users.user_id AS users_user_id, users.username AS users_username, users.password AS users_password, users.email AS users_email, users.registered_on AS users_registered_on \\nFROM users \\nWHERE users.username = %(username_1)s \\n LIMIT %(param_1)s'] [parameters: {'username_1': ['a'], 'param_1': 1}] (Background on this error at: http://sqlalche.me/e/f405)","docstring":null}


Oke nog een paar bevindingen dan:
spoiler:
Je hebt ook nog https://stemwijzer.speld.nl/login en /logout. Die geven beiden een 500 maar als je een POST doet op /login krijg je een json object met "data":"login.html" dat is ook opmerkelijk aangezien de pagina login.html verder niet bestaat. Wie weet is daar nog wat meer mee te doen.


Hopelijk is er iemand al verder gekomen!
Pagina: 1