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

in #polish3 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.

Sort:  

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ń.