Dzień bez znaczenia

Dziś w Wielkopolsce z okazji Europejskiego Tygodnia Zrównoważonego Transportu był Dzień bez Samochodu. W związku z tym każdy posiadacz ważnego dowodu rejestracyjnego mógł podróżować bezpłatnie autobusami i tramwajami oraz pociągami Kolei Wielkopolskich i Przewozów Regionalnych na terenie województwa.

Idea piękna, inicjatywa prowadzona od kilku lat, ale… wprowadzona ulga nie ma już znaczenia, tak naprawdę. I nie musi przekładać się w żaden sposób na spadek podróżujących samochodami. System można bowiem zhackować: o ile dotychczas dowód rejestracyjny był niezbędny do jazdy samochodem[1], o tyle od października 2018 nie jest już wymagany. Więc jedna osoba w rodzinie może pojechać jak dotychczas samochodem, a druga wziąć dowód rejestracyjny i jeździć komunikacją miejską za darmo.

Zastanawiam się, na ile to świadome działanie, a na ile bug systemu. Oraz czy nie było tak, że cała akcja była zrobiona z rozpędu. Może w przyszłym roku po prostu w Dniu bez Samochodu komunikacja miejska będzie za darmo? Zwyczajnie i po prostu, bez dodatkowych warunków?

[1] Przynajmniej zgodnie z prawem, bo jego brak groził mandatem.

Google CTF beginners quest 2019

W tym roku zostałem zaskoczony informacją o odbywającym się Google CTF na urlopie. Link o tym, że się odbywa wpadł z Hacker News. Zdziwiłem się, że minął już rok od ostatniej edycji. Planowałem poklikać podobne rzeczy, więc choć miałem nieco inne plany to stwierdziłem, że mogą poczekać, bo w zeszłym roku zabawa przednia była.

Google CTF 2019 screenshot

W tym roku formuła CTF dla początkujących była nieco inna. Wiele ścieżek, różne przejścia między węzłami (czyli więcej, niż jedna flaga w zadaniu), różne zakończenia w zależności od poziomu trudności. Nieco mieszane uczucia mam w stosunku do tego podejścia, zwł. szkoda, że nie widać wszystkich przejść między zadaniami.

Ponieważ urlop, to było sporo innych, ciekawszych zajęć, więc dość szybko się zniechęciłem. W zasadzie od razu po dotarciu do najłatwiejszego końca. Zadania wydawały mi się trudniejsze, niż w zeszłym roku. Albo inaczej – wymagające użycia dedykowanych narzędzi. W zeszłym roku chyba było bardziej ogólnie, przynajmniej jeśli chodzi o narzędzia, w tym bez gdb i pwntools wydaje mi się, że nie było szansy, nawet na najprostszym poziomie.

Nadal można próbować sił, do czego zachęcam. I w sumie sam pewnie siądę do reszty zadań w chwili wolnej, o ile jeszcze CTF będzie aktywny…

Google CTF begginers quest – wrażenia

O Google CTF dowiedziałem się zupełnym przypadkiem, prawdopodobnie info mignęło mi na Twitterze. Do głównego nie podchodziłem i z braku czasu, i umiejętności, ale stwierdziłem w sobotę, że pobawię się chociaż zadaniami dla początkujących przy kawie, czyli begginers quest. Pierwsze wrażenie jak najbardziej pozytywne, jest fabuła, jest estetyczna strona.

Google CTF screenshot
Google CTF screenshot – poza ostatnim dolnym te zadania albo umiałem rozwiązać, albo bardzo niewiele zabrakło

Zadanie pierwsze (letter) trywialne, zadanie drugie (floppy) też poszło szybko i… się wciągnąłęm. Zadanie trzecie (JS safe) już nie takie proste, tzn. niby widzę o co chodzi, ale JS to nie moja działka, więc próbuję innej ścieżki. Na warsztat poszło zadanie z dolnej ścieżki (moar) i… wpadłem w mailny, niepotrzebnie walcząc z socat zamiast przejść do sedna. TBH zmyliło mnie zepsute wyświetlanie i liczyłem, że flaga będzie po prostu gdzieś w manualu, jak tylko naprawię wyświetlanie, tj. połączę się przy pomocy socat zamiast nc. Żeby było śmieszniej o prawidłowym rozwiązaniu też pomyślałem, ale… zafiksowałem się na tym, że najpierw wymagany jest socat i nie drążyłem tematu.

Postanowiłem zajrzeć w górną ścieżkę i… bingo, pierwsze zadanie (OCR is cool) wygląda na proste. Najwięcej czasu zeszło mi na OCR (da się znaleźć sensowne online, niemniej jak potem testowałem to najlepiej od kopa działał lios). Kolejne zadania idą dość szybko, choć nie zawsze do końca ortodoksyjnie. Utknąłem dopiero na Media DB. Oczywiście prawidłowo rozpoznałem i typ, i miejsce, gdzie jest luka ale… zabrakło skilla, a w przykładach w sieci dominuje PHP, MySQL i… nieco inne payloady, niż wymagany. Jak się później okazało, chciałem to zrobić w sposób mocno przekombinowany. Chwilę powalczyłem, ale nie wiedząc, czy specyfika Pythona, czy SQLite, odpuściłem, robiąc finalnie sześć zadań.

Przyznaję, że CTF bardzo mi się podobał, niestety trochę słabo z czasem stałem, poza tym, to jedna z pierwszych tego typu zabaw, chociaż z tego co pamiętam w jakieś podobne zagadki kiedyś się okazjonalnie bawiłem, choć może nie do końca się to CTF nazywało i bardziej związane ze steganografią były. Klimat nieco podobny jak przy konkursach związanych z programowaniem, choć tu się bardziej psuje/debuguje, niż tworzy. 😉

Tak czy inaczej polecam zabawę, jeśli ktoś ma chwilę. Przez jakiś czas serwis powinien jeszcze działać, choć nie jest już supportowany, można się pobawić (dlatego bez spoilerów). Bardzo staranne przygotowanie, choć zadania trochę trudne, jak dla początkujących i bardzo przekrojowe.

Jeśli komuś się znudzi, albo po prostu utknie, to Gynvael pokazywał na YouTube rozwiązanie wszystkich zadań z Google CTF dla początkujących na żywo. Jest podział na zadania, można przeskoczyć do wybranego, co się przydaje, bo materiału trwa prawie cztery godziny.

Co do samego streamu mam mieszane uczucia – z jednej strony bardzo fajnie i live, z drugiej trochę chaosu i momentami dłużyzn. Ale takie są uroki rozwiązywania na żywo. Za to jest klimat i wytłumaczenie okolic i przyległości, a jakby coś było za szybko lub niezrozumiałe, to materiały powinny już być na GitHubie, więc ostatecznie polecam, tym bardziej, że nie kojarzę innego miejsca z kompletem rozwiązań.

Okazało się, że brakuje mi porządnego deassemblera. Moje hexedytory też nie do końca spełniają oczekiwania (lub nie umiem ich sprawnie używać). Ale przede wszystkim muszę dojść do porozumienia z terminalem, bo w zadaniu Fridge TODO list zamiast bannera widzę krzaki. I szczerze mówiąc myślałem, że pozbycie się ich to część zadania, dopiero ww. stream pokazał, że zupełnie nie o to chodzi… 😉

Spis wyborców a rejestr wyborców

Człowiek uczy się całe życie. Czasem nawet patrzy i nie widzi. Jakiś czas temu opisywałem głosowanie poza miejscem stałego zameldowania w kontekście wyborów samorządowych. Nawet pomarudziłem, że dużo roboty, w porównaniu z wyborami parlamentarnymi. Tymczasem przeoczyłem słowo rejestr, które się tam pojawia, zamiast słowa spis, które pojawia się zwykle przy wyborach parlamentarnych itp. W innym moim wpisie użyłem w ogóle słowa lista, które też potocznie jest synonimem spisu czy rejestru, ale w prawie w ogóle nie występuje.

Postanowiłem więc przybliżyć różnice między spisem wyborców, a zupełnie innym tworem, jakim jest rejestr wyborców. Wszystkie procedury są opisane dokładnie w Kodeksie Wyborczym (link do tekstu jednolitego jest w linkach zewnętrznych), w razie wątpliwości odsyłam tam, tu będzie tylko skrót. Zaznaczam, że nie jestem prawnikiem, więc pewne niuanse

Dopisanie do spisu wyborców

  • Określone jest w art. 28 Kodeksu Wyborczego,
  • Dokonuje się go w urzędzie gminy w miejscu czasowego pobytu,
  • Jest proste – wystarczy wypełnić formularz i okazać dokument potwierdzający tożsamość,
  • Jest jednorazowe, tj. działa tylko na konkretne wybory. Czyli jest tymczasowe.

Dopisanie do rejestru wyborców

  • Określone jest w art. 19 Kodeksu Wyborczego,
  • Również dokonuje się go w urzędzie gminy w miejscu stałego pobytu,
  • Jest nieco bardziej skomplikowane – dwa formularze, konieczność wykazania stałości pobytu (zaświadczenie z miejsca pracy, umowa najmu, akt własności/nr księgi wieczystej)
  • Działa na stałe – zostajemy wykreśleni z rejestru w miejscu stałego zameldowania i wpisani do rejestru wyborców tam, gdzie złożyliśmy wniosek. Czyli jest stałe.

No i pora na zadanie praktyczne, czyli mały hacking systemu, albo lifehack (zależy jak patrzeć). Zagadnienie, od którego rozpoczęła się dyskusja na FB to:

Czy można, będąc zameldowanym na stałe w Przemyślu, mieszkając na stałe w Szczecinie, pobrać – bez wyprawy do Przemyśla, czyli w szczecińskim urzędzie miasta – zaświadczenie, uprawniające do głosowania w Warszawie?

Wygląda, że da się (rozwiązanie nie jest wymyślone przeze mnie), o ile rozpoczniemy operację odpowiednio wcześniej:

  1. Dopisujemy się do rejestru wyborców w Szczecinie (wykazujemy, że mieszkamy tam na stałe itp.).
  2. Po pomyślnym dopisaniu do rejestru wyborców, udajemy się do urzędu miasta w Szczecinie i informujemy, że chcemy zaświadczenie uprawniające do głosowania poza miejscem zamieszkania (art. 32 Kodeksu Wyborczego).
  3. [solved] 🙂