RE25

Zadanie

ecsc19_re25_task.png

W zadaniu dostawaliśmy binarkę task (dostępna w załączonym po lewej strony zipie, razem z resztą plików rozwiązania), która po odpaleniu prosila o hasło, sprawdzała jego poprawność, flaga to poprawne hasło.

Rozwiązanie

Większość flagi można było odzyskać w kilka minut w gdb wpisując jakąś flagę i patrząć jakie wartości będą przekazywane do strcmp albo po prostu ze sobą porównywane, i nadpisując pamięć tak by te porównania przeszły. W taki sposób można było otrzymać format flagi:

"ecsc19{cRYPt0" + "XXX" + "xor}"

gdzie X oznacza dowolny znak. Funkcja sprawdzająca te 3 znaki była na tyle rozbudowana, że zamiast ją reversować puściłem skrypt w pythonie brutujący te 3 znaki (dostępny w załączniku), po kilku minutach otrzymując wynik:

ecsc19{cRYPt0_h4xor}