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

in polish •  7 years ago  (edited)

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!


Originally posted on Technologicznie. Steem blog powered by ENGRAVE.

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Ja byłem bardzo blisko z tym rebusem. Konto z nagrodą znalazłem na początku więc domyśliłem się, że szukać trzeba klucza. Rozpisałem sobie te słowa w różnych kombinacjach (z plusami, ze spacjami, łącznie itp, itd). Nie mogłem tylko wpaść na Base64, bo pisałem:

0x40 base
@ base

i kombinacje.

Miałem i przez chwilę zapisane 64 base, ale nie zaskoczyło. Gdyby obrazek był inaczej narysowany (np. napis byłby pod bazą albo z jej prawej strony) - to znacznie łatwiej bym na to wpadł. To jest właśnie najgorsze w takich zagadkach, że czasem by skojarzenie się zbudowało potrzebujesz naprawdę niewiele, a czasem masz obok siebie dwie rzeczy, którym wystarczy zmienić kolejność i tego nie widzisz.

Mnie długo przetrzymał sam fakt, że 64 to w ASCI znak @, więc próbowałem skombinować z tego jakieś konto, ale nic sensownego mi nie wychodziło ;) Ale po pewnym czasie zaskoczyła właśnie ta baza :)

Też byłem w tych krzakach. W pewnym momencie doszedłem do wniosku, że nie patrzę na klucz a na wskazówkę gdzie klucz jest ukryty. No bo Steem * (@ jest bazą/podstawą) to przecież wskazówka, że chodzi o jakieś konto. Najgorzej, że na prawie wszystkie te wyrazy już są konta (ale za stare).

Potem zacząłem kombinować z @ base znaczy at base czyli w bazie danych (no bo przecież steemweb.pl korzysta z bazy SQL). Czyli strukturę bazy też sobie obczaiłem :-).

Potem wróciłem do pomysłu, że to jednak hasło i zacząłem się zastanawiać co to było za narzędzie do bruteforce'u, które pracuje na zadanym słowniku i testuje wszystkie kombinacje. Jeśli to narzędzie robi też na próbkach kodowanie w różnych systemach (a chyba robi) - to najśmieszniejsze, że pewnie by znalazło rozwiązanie :-D. Ale nie zdążyłem sobie tego narzędzia przypomnieć.

Jeśli chodzi o zagadkę samodzielnie doszedłem tylko do etapu kodu strony, no cóż jestem nobem.

Pierwsza myśl to było że wezmę zdjęcie i pobawię się krzywymi - zobacze może jakiś napis w postaci innego lub kompletnego braku szumu. Ale zapytałem na czacie i stwierdziłem ze najpierw otworze w notatniku.

Tam był link i szukałem w kodzie, niestety tam nic nie było.

To też częste podejście - ukrywanie dodatkowych informacji w pliku w taki sposób, żeby na pierwszy rzut oka nie było widać. Gdyby właściwości obrazka nic nie wykazały, to szukałbym właśnie za pomocą notatnika lub podobnego programu, który pozwoliłby na wyświetlenia obrazka w "formie tekstowej" ;)

Pisałeś na czacie coś o + oraz * więc szukałem dodatkowych informacji właśnie w pobliżu tych znaków w notatniku. Miejscami nawet zdawało mi się że widzę jakiś klucz, innymi ze 2-3 litery z słowa :D

Gratulacje, fajny opis, fajnie się to czyta :)

Dzięki :) Fajnie przygotowana łamigłówka, oby więcej takich :)

Łamigłówka raczej dla ogarniętych bardziej😀eee wole sportowe i kulinarme konkursy😀
Bravo WY!👏👏👍

A ja myślałem, że 0x40 to 1000000 w systemie dwójkowym, co wydawało mi się "pewniakiem", bo liczba kont na Steem przekroczyła milion :O

Niesamowite ile może być interpretacji

Każdy widzi to co chce

Też kombinowałem naprawdę na różne sposoby. Tekst o tym etapie nie jest jakiś super długi, ale w rzeczywistości sporo czasu mi zajęło zastanawianie się nad rebusem ;)

Cicada 3301. :D

Na trochę mniejszą skalę ;)

Dzięki, to dobry test na to "czy nadaję się na programistę". W ten sposób można zaoszczędzić trochę czasu i pozbawić się złudzeń.