Jak rozwiązałem zagadkę z okazji 500 obserwujących konto @rafalski - Technologicznie

Jak rozwiązałem zagadkę z okazji 500 obserwujących konto @rafalski

Kolega @rafalski przygotował świetną łamigłówkę z okazji zdobycia pół tysiąca followersów, a ja opiszę pokrótce jak to się stało, że udało mi się prz

Posted by Bartłomiej, 20 czerwca 2018 17:00

Kolega @rafalski przygotował świetną łamigłówkę z okazji zdobycia pół tysiąca followersów, a ja opiszę pokrótce jak to się stało, że udało mi się przelać zwycięskie 10 SBD na swoje konto.

Chciałbym także od razu zaznaczyć, że jestem programistą i spotkałem się już z podobnymi koncepcyjnie zagadkami, więc prawdopodobnie miałem zdecydowanie łatwiej niż inni Steemianie. Postaram się przybliżyć mój tok rozumowania podczas rozwiązywania zagadki oraz naprowadzić może kogoś na rozwiązanie kolejnej tego typu łamigłówki w przyszłości :)

Postaram się także, żeby zdobyte SBD zostały pożytecznie wykorzystane ;)

1. Szybkie rozpoznanie

Treść wpisu nie była zbyt rozbudowana i najwięcej miejsca zajmowało zdjęcie, które w dodatku posiadało podane źródło. Wiedząc, że @rafalski jest autorem serwisu steemweb.pl można się było domyślić, że to źródło nie znajduje się tam bez przyczyny, przecież nie wrzucałby informacji o źródle zdjęcia, gdyby to było jego zdjęcie, bo i po co?

Postanowiłem więc szybko przejść pod wskazany adres i pobrać plik, mając nadzieję, że jest to integralny element zagadki. Okazało się, że miałem rację. Pobranie pliku i sprawdzenie jego właściwości pozwoliło poznać jedną z podpowiedzi / przejść na kolejny etap łamigłówki.

Właściwości pliku 'head.png' to element zagadki

2. Poszukiwanie nagrody

Pole Description pliku graficznego prowadziło pod link http://steem.swhost.pl/konkurs, który z kolei przekierowywał na https://steemweb.pl/konkurs, a tam przywitała mnie informacja z gratulacjami i kolejne zadanie do wykonania.

Szukamy nagrody na stronie steemweb.pl

Rozpocząłem więc poszukiwania na stronie. Pierwsze o czym pomyślałem, to ukrycie rozwiązania za pomocą białego tekstu. Zaznaczenie wszystkiego (CTRL+A) nie ujawniło jednak żadnych dodatkowych informacji. Przyszedł czas na spojrzenie w źródło strony. Standardowo kliknąłem sobie prawym przyciskiem myszy na stronie i wybrałem opcję Zbadaj (w przeglądarce Chrome), która pozwoliła mi ujrzeć co ten @rafalski tam nakombinował. Po chwili udało się zlokalizować małą podpowiedź:

Gdzie ta nagroda?

Szukałem więc dalej. Rozwinąłem wszystkie tagi HTML dostępne w podglądzie, w poszukiwaniu czegoś nienaturalnego. Sprawdziłem jakie skrypty są załączane do strony i czy nie występuje jakiś z nazwą nawiązującą do konkursu. Zerknąłem także na zakładkę Console, która służy zazwyczaj do wyświetlania różnych informacji przydatnych deweloperom, ale była ona pusta. Szczerze mówiąc niewiele mi ta podpowiedź pomogła i po kilku minutach dałem sobie spokój z szukaniem czegoś w treści strony. Skoro więc nie było niczego na tej podstronie, to znaczy, że musimy iść gdzieś indziej, gdzieś dalej.

Pomyślałem sobie:

Skoro szukam nagrody na stronie w rozumieniu całego steemweb.pl, to może trzeba coś wykombinować z adresem URL strony? Mamy w końcu konkurs, to może i w ten sam sposób znajdziemy nagrodę?

Szybko więc zmieniłem lekko adres URL strony na https://steemweb.pl/nagroda i znalazłem… nagrodę! A przynajmniej taką miałem nadzieję ;)

Screenshot from 2018-05-28 20-28-20.png

3. Rebus

Rozwiązanie tego obrazka zajęło mi najwięcej czasu. Od początku próbowałem go rozwiązać jako jakieś nietypowe równanie, gdzie coś trzeba do siebie dodać i pomnożyć. Tabela ASCII podpowiedziała mi, że 0x40 w systemie szesnastkowym odpowiada znakowi @. Próbowałem na najróżniejsze sposoby zliczać ilość liter występujących w nazwach przedmiotów na obrazku, dodawać je, mnożyć i zamieniać na znaki ASCII, żeby utworzyć link do jakiegoś nieznanego mi konta na steemit. Niestety nic z tego nie wychodziło.

Próbowałem więc sprawdzić, czy obrazek nie kryje w sobie jakichś dodatkowych informacji, tak jak ten z konkursowego postu na steemit. Niestety nic z tego, obrazek był "czysty". Nie pomogły nawet internetowe narzędzia do steganografii, która jest często wykorzystywana w takich łamigłówkach.

Zacząłem się więc zastanawiać co może tak naprawdę oznaczać ostatni obrazek, bo wcześniej zwracałem uwagę tylko na liczbę na nim. Po chwili do mnie dotarło: to baza! A ile to 0x40 w systemie dziesiętnym? 64 :) Wiedziałem już, że jestem w domu, bo znam coś takiego jak kodowanie Base64.

Narzędzia pozwalające kodować i dekodować tekst w tym systemie są bez problemu dostępne w sieci. Szybkie wyszukiwanie pozwoliło przejść na jedno z nich. Domyśliłem się także, że znak * na obrazku wcale nie oznacza mnożenia, więc prawdopodobnie plusy nie oznaczają jako tako dodawania liczb.

Postanowiłem sprawdzić co wyjdzie, gdy spróbuję zakodować nazwy rzeczy z obrazka za pomocą systemu base64:

Screenshot from 2018-05-28 20-56-45.png

Przypomina wam to coś? Bo według mnie wygląda to jak typowe hasło do konta Steem ;)

4. Gdzie tu się włamać

@rafalski obiecał 10 SBD, jako formę nagrody, więc pierwsza rzecz jaka mi przyszła na myśl, to… sprawdzić, czy go stać ;) Nie było to szczególnie trudne, wystarczyło wejść na jego konto na Steemit i sprawdzić, czy posiada płynne SBD w portfelu. Okazało się, że środków miał wystarczająco dużo, na tyle dużo, że zdziwiłbym się, gdyby podał gdziekolwiek swój active key albo hasło (zresztą i tak bym się zdziwił, nawet jakby nie miał środków płynnych ;) ).

Postanowiłem więc spojrzeć w historię jego transferów. Daleko nie trzeba było szukać:

Przelew do konta konkursowego

Mam Cię ;)

Jednak szybka próba zalogowania niestety okazała się porażką :/ Nie zwątpiłem jednak, że jest to dobra droga do rozwiązania zagadki, więc spróbowałem skorzystać z angielskich słów house mouse guitar steem, które po zakodowaniu w base64 ostatecznie pozwoliły mi na zalogowanie się na konto @iamyourreward ;) Wystarczyło więc tylko wykonać przelew na swoje konto, aby odebrać nagrodę w postaci 10 SBD :D

5. Podsumowanie

Dziękuję koledze @rafalski za przygotowanie tej przyjemnej łamigłówki i odciągnięcie mnie na jakiś czas od pracy ;) Pomysł jest dość znany i jeśli ktoś ma ochotę spróbować swoich sił w podobnej rozrywce, to jest przynajmniej kilka takich gier. Jeśli macie wystarczająco dużo czasu, spróbujcie swoich sił w:

To bardzo krótka lista przykładów, ale wszystkie to prawdziwe pożeracze czasu, więc weźcie sobie to ostrzeżenie do serca :) W powyższych grach będziecie musieli się wykazać jeszcze większą kreatywnością, więc pozostaje mi tylko życzyć wam powodzenia!