P4CTF 2015 - Statystyki i trochę kulis

Odpowiedz Nowy wątek
2015-12-23 01:33
msm
11

Edit: aaa. Nie wiedziałem że tego tyle wyjdzie. W każdym razie, niektórzy pytali o kulisy, albo o statystyki, albo o ciekawe wysyłane flagi. W tym poście jest to wszystko i jeszcze trochę.
Mam nadzieje że wystarczy wszystkim fanom statystyk na długo :P. (chociaż szczerze mówiąc, sama częśc ze "statystykami" to ledwo dwa wykresy powtarzane dla każdego zadania - ale nie miałem ciekawszych pomysłów na wizualizację.

<font size="10">Statystyki p4ctf</span>

OK, więc konkurs dobiegł końca, czas na obiecane statystyki (z pewnym opóźnieniem, ale zawsze).

Mowa o p4ctf (http://4programmers.net/Forum/Spolecznosc/262444-ogloszenie_-_p4ctf_2015_dla_uzytkownikow_forum) który organizowaliśmy w ostatni weekend.

Jeśli ktoś uczestniczył i chce się podzielić rozwiązaniami - zapraszamy do http://4programmers.net/Forum/Spolecznosc/263177-p4_ctf2015-_write-upy_i_rozwiazania.

Na początek, dzięki wszystkim za uczestnictwo. Trzeba przyznac że dopisała frekwencja, nawet bardziej niż się spodziewaliśmy. Aż 121 osób wystartowało, z tego 80 zrobiło przynajmniej jedno "prawdziwe" zadanie.
Sporo użytkowników zarejestrowało się specjalnie po to, żeby wystartować w CTFie (nie mam dokładnych liczb), ale większość uczestników to jednak stali bywalcy.

<font size="5">Trochę o pomyśle, oraz timeline</span>

Pomysł na zorganizowanie konkursu wpadł nam do głowy na spotkaniu autorskim z Gynvaelem Coldwindem 7 listopada gdy przypomniało się nam, że 4programmers również w ramach patronatu medialnego dostanie kilka książek. Tego samego dnia napisałem (Rev) do MSMa, a pierwsze akcje w tym kierunku podjeliśmy 22 listopada (pierwsze akcje = założenie kanału na slacku).

Organizacja nie szła jednak zbyt żwawo, więc postawnowiliśmy działać (uwaga: dużo cytatów ze slacka):

2 grudnia

<msm> no dobra, trzeba deadline ustawić <msm> bo when its done może być w lutym równie dobrze :P Niestety, motywacja werbalna nie wystarczyłą, więc trzeba było użyć drastycznych środków: 4 grudnia <msm> ej, panowie, może ogłosimy termin CTFa np. na za dwa tygodnie <msm> a potem sie będziemy musieli spinać żeby zdążyć :D <shalom> ja już na mikroblogu dawno napisałem że coś się szykuje :D <shalom> można by wreszcie podać konkretny termin, to fakt :D 8 grudnia Powstają pierwsze zadania, @{Demonical Monk} ma okazje być pierwszym testerem zadań webowych spoza p4. 12 grudnia <shalom> @msm @rev jak tam idzie pisanie dashboarda? <msm> reva teraz nie ma przy komputerze <rev> sorry, spałem :P. w nocy zacznę! Wszystko jak zawsze gotowe i przetestowane z wyprzedzeniem! 14 grudnia <nazywam> Nie chciałbym popędzać ale jak wam ta strona idzie? Bo dobrze by było jeszcze przetestować trochę :> <rev> nazywam: idzie :P. będzie <shalom> Czytaj: jeszcze nie zaczęta :P <rev> dokładnie <shalom> ja tam oczekuje takiej opcji http://motherfuckingwebsite.com/ 16 grudnia Serwer CTFa stoi, można się nawet logować. Powstawje też w końcu prototyp scoreboarda. 17 grudnia Scoreboard prawie skończony, zadania powoli się pojawiają 18 grudnia Wrzucamy zadania. Nie wszystko idzie gładko: 8:00 - jeszcze optymistycznie <other019> ehh no to do 18 mam czas poprawić moje forensics 9:30 <shalom> @rev coś się tabelka rozjeżdża jak nazwy są za długie 10:01 <rev> trzeba wymyślić co dać na stronie powitalnej tak swoją drogą 10:04 <rev> FLAGA = p4{you_must_have_hired_chinease!} - ta literówka we fladze jest zamierzona? 10:28 <rev> @msm by się na przykład przydał do ogarnięcia swoich zadań 15:26 - pesymista z tego shaloma <shalom> ej no jest 15:30 a jeszcze nie wszystkie zadania są dodane :stuck_out_tongue: kiedy wy chcecie przetestować czy wszystko działa? 18:35 - w końcu wszystko stoi <rev> sprawdzać! wszystko od deski do deski 19:03 - jesteśmy pełni optymizmu <rev> jak weźmie mniej niż 10 osób udział w konkursie to bym przedłużył go do całego tygodnia i poprosił Gynvaela o dodatkową reklamę np. na wykopie :P 19:29 - ale ktoś wziął udział jednak, co niektórych zaskoczyło: <rev> co to za ludzie?! 19:55 - ostatnie ustalenia <rev> coś wymyślę, z modelu wywalę db.session.commit() i tyle ;P 20:00 - początek CTFa 20:01 - radość i niedowierzanie <rev> jeeeeeeeeeeest <rev> pierwszy solve <nazywam> I jeszcze wzsystko stoi! 20:07 - na niektórych liczyliśmy bardziej niż na innych <rev> o, karolina się zalogowała 20:33 - oraz kibicowaliśmy <rev> gogogo karolina, zrób re0, będziesz druga 21:00 - trochę fuckupów <other019> ok ogłoszenie zrypałem flage do cebulacipher #2 prosimy o ponowne wysłanie ... i jakoś to poszło samo. Wystarczy chyba bo i tak sam przedwstęp tego posta ma 100 linijek. <font size="5">Trochę o organizacji.</span> Cała infrastruktura stała u Reva na serwerze, on też zajął się napisaniem scoreboardu, konfiguracją VPNa, postawieniem containerów i ogólnie backendem (takich adminów potrzebujemy!). Zadania które miały ryzyko zostać wyexploitowane (tzn. na przykład web) w niespodziewany sposób stały na osobnych kontenerach. Wyjątkiem był piet - na upartego można było ukraść flagi z weba pisząc program graficzny w piecie. Była to ciakawa opcja, ale nikt tak tego nie rozwiązał (a przynajmniej nie zauważyliśmy) - może to i dobrze, bo pisanie programów bitmapą było chyba dużo trudniejsze niż nasze zadania webowe. Przed CTFem (prawie) wszyscy rozwiązaliśmy (prawie) wszystkie zadania żeby ocenić ich trudność. Jeśli kogoś to interesuje, tabelka z naszymi wycenami: | (author) | msm | shalom | nazywam | other | cr0 web0 | nazywam | 100 | 100 | 100 | 100 | 50 web1.1 | nazywam | 200 | 100 | 100 | 150 | 50 web1.2 | nazywam | 400 | 300 | 200 | 300 | 50 web2 | nazywam | 300 | 200 | 150 | 200 | 100 crypto1.1 | other019 | 50 | 50 | 50 | 50 | 50 crypto1.2 | other019 | 50 | 50 | 50 | 50 | 50 crypto1.3 | other019 | 100 | 100 | 75 | 50 | 50 crpyto1.4 | other019 | 50 | 50 | 50 | 50 | 100 crypto1.5 | other019 | 200 | 200 | 150 | 50 | 150 crypto2 | shalom | | | 400 | | 400 re0 | msm | 200 | | 200 | | 200 re1 | msm | 400 | | 400 | | 400 stegano1 | nazywam | 200 | inf | 250 | 400 | 200 forensics1 | other019 | 400 | 200 | 300 | 300 | 300 forensics2.1 | nazywam | 100 | 100 | 75 | forensics2.2 | nazywam | 300 | 300 | 250 | misc1 easy | shalom | | 200 | 250 | | 200 misc1 hard | shalom | | 400 | | | 400 web3 | nazywam | 200 | 100 | 100 | 100 | 100 stegano2 | nazywam | | | 200 | misc2 lvl1 | shalom | | 300 | | misc2 lvl2 | shalom | | 100 | | misc2 lvl3 | shalom | | 200 | | piet | other019 | | | 200+300 | Jeśli porównać to z ilością rozwiązań - nie zawsze okazywało się że nasze przewidywania były słuszne (no ale, zawsze tak jest). <font size="5">Wysyłane flagi</span> Wysłaliście 2041 flag, z czego 680 poprawnych. Pierwszą osobą która rozwiązała cokolwiek był @Hummin, któremu rozwiązanie wprowadzającego zadania zajęło 61 sekund. Pierwszą osobą która zrobiła "prawdziwe zadanie" był @Xert, który zrobił zadanie `easyre` w 4 minuty 24 sekundy (ok, przyznaje, to zadanie powinno się nazywać `too easy re`). Dokładniejsze statystyki pierwszych rozwiązań są podane per zadanie. Z drugiego końca, ostatnią osobą która wysłała flagę (błędną) to @Humpback (1 minuta 20 sekund przed końcem CTFa). A ostatnią osobą która rozwiązała zadanie przed końcem CTFa to @{Lord Darkstorm}, który wyrobił się w 2 minuty 10 sekund przed końcem (było blisko). Z ciekawszych wysyłanych flag (mam nadzieję że nikt się nie obrazi po zobaczeniu siebie - każdy błądzi, ale niektórzy bładzili ciekawiej niż inni): * Przy zadaniu polegającego na napisaniu bota rozpoznającego języki, niektórzy chcieli pójśc na skróty (:P): * `p4{polski}` dla zadania `English, do you speak it?` * `Francuski` dla zadania `English, do you speak it?` Niektórzy wysyłali flagi do złego zadania (w dodatku z literówką) * `p4{FTP_Free_To_Pw n}` dla zadania `Hasło Shaloma` A później bez literówki, ale dalej do złego zadania: * `p4{FTP_Free_To_Pwn}` dla zadania `Hasło Shaloma` Niektórzy jakimś cudem kopiowali znaki specjalne z flagą, przez co nie dostawali zasłużonych punktów: * `p<90>4{path_traversal_cats}` dla zadania `Challenge Koty MSMa` * `"PR33TY_G00D^A��4��^T` dla zadania `Cebula cipher #1` Niektórzy bardzo nisko szacują jakość hasła shaloma: * `p4{}` dla zadania `Hasło Shaloma` Albo podejrzewali o wschodnie powiązania: * `Будете ли вы нам помочь?` dla zadania `Hasło Shaloma` (@Shalom pozdrawia też tych, którzy próbowali się zalogować na jego konto flagą z tego zadania. Niestety, zmienił hasło w piątek więc już nie działała). Niektorzy byli wytrwali w wysyłaniu błędnej flagi (licząc że w końcu przejdzie): ``` 2015-12-18 22:07:43,744 INFO: <user xxx="xxx"> sent flag: "F00LST4RT" for <challenge cipher="cipher" #3="#3" cebula="Cebula"> 2015-12-18 22:07:49,054 INFO: <user xxx="xxx"> sent flag: "F00LST4RT" for <challenge cipher="cipher" #4="#4" cebula="Cebula"> 2015-12-18 22:07:52,407 INFO: <user xxx="xxx"> sent flag: "F00LST4RT" for <challenge cipher="cipher" #4="#4" cebula="Cebula"> 2015-12-18 22:07:59,664 INFO: <user xxx="xxx"> sent flag: "F00LST4RT" for <challenge cipher="cipher" #5="#5" cebula="Cebula"> 2015-12-18 22:08:05,296 INFO: <user xxx="xxx"> sent flag: "F00LST4RT" for <challenge cipher="cipher" #3="#3" cebula="Cebula"> ``` Albo nalegali na pomoc: ``` 2015-12-18 22:45:05,157 INFO: <user xxx="xxx"> sent flag: "p4{Will you help us}" for <challenge #1="#1" capture="Capture" the="The" data="Data"> 2015-12-18 22:45:15,409 INFO: <user xxx="xxx"> sent flag: "Will you help us" for <challenge #1="#1" capture="Capture" the="The" data="Data"> 2015-12-18 22:45:20,929 INFO: <user xxx="xxx"> sent flag: "p4{Will you help us?}" for <challenge #1="#1" capture="Capture" the="The" data="Data"> 2015-12-18 22:45:29,661 INFO: <user xxx="xxx"> sent flag: "p4{Will you help us?}" for <challenge #1="#1" capture="Capture" the="The" data="Data"> ``` A niektórzy nie lubią wścibskich administratorów czytających cudze odpowiedzi: * `PROSZĘ NIE CZYTAĆ ODPOWIEDZI, LUDZIE TUTAJ PRÓBUJĄ KOMBINOWAĆ!!!` dla zadania `Challenge Cebula cipher #1` A, i pozdrowienia dla @{Gynvael Coldwind} który wszedł na CTF, po 10 minutach zrobił jedno z trudniejszych (0 solvów wtedy) zadań i sobie poszedł. Już się baliśmy że chce od nas wygrać własną ksiażkę :P. To teraz po kolei zadania. Pierwszy wykres w każdym opisie mówi ile procent osób: - wysłało w końcu dobrą flagę i rozwiązało zadanie - wysłało zła flagę i nie wysłało później dobrej flagi - nie wysłało żadnej flagi Drugi wykres mówi ile procent wysyłanych flag do zadania była poprawna, a ile procent była błędna. <font size="5">zadanie Cebula cipher #1 (kategoria: crypto) (50p)</span> Rozwiązało zadanie: 47 Spróbowało rozwiązać (wysłało flagę): 63 Ale nie podołało (wysłało tylko złe flagi): 16 Zignorowało zadanie: 63 solve_Cebulacipher1.png try_Cebulacipher1.png Pierwsze rozwiązania: * @{Marszal} rozwiązał zadanie w 0.16 godzin po rozpoczęciu * @{Mikan} rozwiązał zadanie w 0.16 godzin po rozpoczęciu * @{big_y} rozwiązał zadanie w 0.34 godzin po rozpoczęciu <font size="5">zadanie Cebula cipher #2 (kategoria: crypto) (50p)</span> Rozwiązało zadanie: 35 Spróbowało rozwiązać (wysłało flagę): 46 Ale nie podołało (wysłało tylko złe flagi): 11 Zignorowało zadanie: 80 solve_Cebulacipher2.png try_Cebulacipher2.png Pierwsze rozwiązania: * @{alamapsa} rozwiązał zadanie w 1.1 godzin po rozpoczęciu * @{big_y} rozwiązał zadanie w 1.11 godzin po rozpoczęciu * @{kot.4p} rozwiązał zadanie w 1.4 godzin po rozpoczęciu <font size="5">zadanie Cebula cipher #3 (kategoria: crypto) (75p)</span> Rozwiązało zadanie: 10 Spróbowało rozwiązać (wysłało flagę): 21 Ale nie podołało (wysłało tylko złe flagi): 11 Zignorowało zadanie: 105 solve_Cebulacipher3.png try_Cebulacipher3.png Pierwsze rozwiązania: * @{superhero01} rozwiązał zadanie w 0.97 godzin po rozpoczęciu * @{Xert} rozwiązał zadanie w 2.27 godzin po rozpoczęciu * @{tsugumo} rozwiązał zadanie w 2.35 godzin po rozpoczęciu <font size="5">zadanie Cebula cipher #4 (kategoria: crypto) (50p)</span> Rozwiązało zadanie: 10 Spróbowało rozwiązać (wysłało flagę): 12 Ale nie podołało (wysłało tylko złe flagi): 2 Zignorowało zadanie: 114 solve_Cebulacipher4.png try_Cebulacipher4.png Pierwsze rozwiązania: * @{Xert} rozwiązał zadanie w 2.35 godzin po rozpoczęciu * @{tsugumo} rozwiązał zadanie w 3.08 godzin po rozpoczęciu * @{diamentowygimbus} rozwiązał zadanie w 3.18 godzin po rozpoczęciu <font size="5">zadanie Cebula cipher #5 (kategoria: crypto) (150p)</span> Rozwiązało zadanie: 8 Spróbowało rozwiązać (wysłało flagę): 14 Ale nie podołało (wysłało tylko złe flagi): 6 Zignorowało zadanie: 112 solve_Cebulacipher5.png try_Cebulacipher5.png Pierwsze rozwiązania: * @{Xert} rozwiązał zadanie w 2.4 godzin po rozpoczęciu * @{tsugumo} rozwiązał zadanie w 2.93 godzin po rozpoczęciu * @{diamentowygimbus} rozwiązał zadanie w 3.19 godzin po rozpoczęciu <font size="5">zadanie easymode (kategoria: re) (200p)</span> Rozwiązało zadanie: 56 Spróbowało rozwiązać (wysłało flagę): 56 Ale nie podołało (wysłało tylko złe flagi): 0 Zignorowało zadanie: 70 solve_easymode.png try_easymode.png Pierwsze rozwiązania: * @{Xert} rozwiązał zadanie w 0.07 godzin po rozpoczęciu * @{Mikan} rozwiązał zadanie w 0.1 godzin po rozpoczęciu * @{karol.pysklo} rozwiązał zadanie w 0.24 godzin po rozpoczęciu <font size="5">zadanie Księżniczka Lea (kategoria: web) (400p)</span> Rozwiązało zadanie: 4 Spróbowało rozwiązać (wysłało flagę): 6 Ale nie podołało (wysłało tylko złe flagi): 2 Zignorowało zadanie: 120 solve_KsiniczkaLea.png try_KsiniczkaLea.png Pierwsze rozwiązania: * @{Gynvael Coldwind} rozwiązał zadanie w 20.75 godzin po rozpoczęciu * @{alamapsa} rozwiązał zadanie w 24.63 godzin po rozpoczęciu * @{big_y} rozwiązał zadanie w 31.41 godzin po rozpoczęciu <font size="5">zadanie D0 Y0u 3v3n PHP? #2 (kategoria: web) (300p)</span> Rozwiązało zadanie: 26 Spróbowało rozwiązać (wysłało flagę): 31 Ale nie podołało (wysłało tylko złe flagi): 5 Zignorowało zadanie: 95 solve_D0Y0u3v3nPHP2.png try_D0Y0u3v3nPHP2.png Pierwsze rozwiązania: * @{alamapsa} rozwiązał zadanie w 0.28 godzin po rozpoczęciu * @{Xert} rozwiązał zadanie w 0.78 godzin po rozpoczęciu * @{irix} rozwiązał zadanie w 1.87 godzin po rozpoczęciu <font size="5">zadanie D0 Y0u 3v3n PHP? #1 (kategoria: web) (100p)</span> Rozwiązało zadanie: 36 Spróbowało rozwiązać (wysłało flagę): 40 Ale nie podołało (wysłało tylko złe flagi): 4 Zignorowało zadanie: 86 solve_D0Y0u3v3nPHP1.png try_D0Y0u3v3nPHP1.png Pierwsze rozwiązania: * @{alamapsa} rozwiązał zadanie w 0.26 godzin po rozpoczęciu * @{Xert} rozwiązał zadanie w 0.79 godzin po rozpoczęciu * @{reptile333} rozwiązał zadanie w 0.99 godzin po rozpoczęciu <font size="5">zadanie Hasło Shaloma (kategoria: forensics) (300p)</span> Rozwiązało zadanie: 10 Spróbowało rozwiązać (wysłało flagę): 29 Ale nie podołało (wysłało tylko złe flagi): 19 Zignorowało zadanie: 97 solve_HasoShaloma.png try_HasoShaloma.png Pierwsze rozwiązania: * @{stryku} rozwiązał zadanie w 4.21 godzin po rozpoczęciu * @{irix} rozwiązał zadanie w 4.59 godzin po rozpoczęciu * @{big_y} rozwiązał zadanie w 5.0 godzin po rozpoczęciu <font size="5">zadanie 42 (kategoria: web) (100p)</span> Rozwiązało zadanie: 36 Spróbowało rozwiązać (wysłało flagę): 52 Ale nie podołało (wysłało tylko złe flagi): 16 Zignorowało zadanie: 74 solve_42.png try_42.png Pierwsze rozwiązania: * @{alamapsa} rozwiązał zadanie w 0.3 godzin po rozpoczęciu * @{big_y} rozwiązał zadanie w 1.0 godzin po rozpoczęciu * @{artur_waw} rozwiązał zadanie w 1.07 godzin po rozpoczęciu <font size="5">zadanie Do they speak English in "what"? (kategoria: misc) (400p)</span> Rozwiązało zadanie: 14 Spróbowało rozwiązać (wysłało flagę): 17 Ale nie podołało (wysłało tylko złe flagi): 3 Zignorowało zadanie: 109 solve_DotheyspeakEnglishinwhat.png try_DotheyspeakEnglishinwhat.png Pierwsze rozwiązania: * @{reptile333} rozwiązał zadanie w 5.18 godzin po rozpoczęciu * @{LKS} rozwiązał zadanie w 8.37 godzin po rozpoczęciu * @{Xert} rozwiązał zadanie w 12.32 godzin po rozpoczęciu <font size="5">zadanie Do you even captcha? (kategoria: misc) (300p)</span> Rozwiązało zadanie: 14 Spróbowało rozwiązać (wysłało flagę): 14 Ale nie podołało (wysłało tylko złe flagi): 0 Zignorowało zadanie: 112 solve_Doyouevencaptcha.png try_Doyouevencaptcha.png Pierwsze rozwiązania: * @{Lord Darkstorm} rozwiązał zadanie w 4.62 godzin po rozpoczęciu * @{LKS} rozwiązał zadanie w 7.1 godzin po rozpoczęciu * @{Marszal} rozwiązał zadanie w 17.39 godzin po rozpoczęciu <font size="5">zadanie English, do you speak it? (kategoria: misc) (200p)</span> Rozwiązało zadanie: 19 Spróbowało rozwiązać (wysłało flagę): 43 Ale nie podołało (wysłało tylko złe flagi): 24 Zignorowało zadanie: 83 solve_Englishdoyouspeakit.png try_Englishdoyouspeakit.png Pierwsze rozwiązania: * @{Hummin} rozwiązał zadanie w 3.63 godzin po rozpoczęciu * @{reptile333} rozwiązał zadanie w 4.15 godzin po rozpoczęciu * @{LKS} rozwiązał zadanie w 4.38 godzin po rozpoczęciu <font size="5">zadanie C3ntrum N$A (kategoria: web) (100p)</span> Rozwiązało zadanie: 35 Spróbowało rozwiązać (wysłało flagę): 42 Ale nie podołało (wysłało tylko złe flagi): 7 Zignorowało zadanie: 84 solve_C3ntrumNA.png try_C3ntrumNA.png Pierwsze rozwiązania: * @{artur_waw} rozwiązał zadanie w 0.08 godzin po rozpoczęciu * @{alamapsa} rozwiązał zadanie w 0.26 godzin po rozpoczęciu * @{big_y} rozwiązał zadanie w 0.81 godzin po rozpoczęciu <font size="5">zadanie Impossibru captcha (kategoria: misc) (200p)</span> Rozwiązało zadanie: 5 Spróbowało rozwiązać (wysłało flagę): 5 Ale nie podołało (wysłało tylko złe flagi): 0 Zignorowało zadanie: 121 solve_Impossibrucaptcha.png try_Impossibrucaptcha.png Pierwsze rozwiązania: * @{Lord Darkstorm} rozwiązał zadanie w 4.96 godzin po rozpoczęciu * @{Xert} rozwiązał zadanie w 21.31 godzin po rozpoczęciu * @{Marszal} rozwiązał zadanie w 24.86 godzin po rozpoczęciu <font size="5">zadanie Koty MSMa (kategoria: web) (200p)</span> Rozwiązało zadanie: 33 Spróbowało rozwiązać (wysłało flagę): 42 Ale nie podołało (wysłało tylko złe flagi): 9 Zignorowało zadanie: 84 solve_KotyMSMa.png try_KotyMSMa.png Pierwsze rozwiązania: * @{alamapsa} rozwiązał zadanie w 0.29 godzin po rozpoczęciu * @{karolinaa} rozwiązał zadanie w 0.36 godzin po rozpoczęciu * @{Hummin} rozwiązał zadanie w 0.97 godzin po rozpoczęciu <font size="5">zadanie piet (kategoria: misc) (200p)</span> Rozwiązało zadanie: 5 Spróbowało rozwiązać (wysłało flagę): 7 Ale nie podołało (wysłało tylko złe flagi): 2 Zignorowało zadanie: 119 solve_piet.png try_piet.png Pierwsze rozwiązania: * @{WhiteLightning} rozwiązał zadanie w 6.64 godzin po rozpoczęciu * @{Hummin} rozwiązał zadanie w 7.35 godzin po rozpoczęciu * @{karol.pysklo} rozwiązał zadanie w 7.84 godzin po rozpoczęciu <font size="5">zadanie Where is my password?! #2 (kategoria: crypto) (400p)</span> Rozwiązało zadanie: 1 Spróbowało rozwiązać (wysłało flagę): 3 Ale nie podołało (wysłało tylko złe flagi): 2 Zignorowało zadanie: 123 solve_Whereismypassword2.png try_Whereismypassword2.png Pierwsze rozwiązania: * @{notaras} rozwiązał zadanie w 28.37 godzin po rozpoczęciu <font size="5">zadanie Where is my password?! #1 (kategoria: crypto) (200p)</span> Rozwiązało zadanie: 14 Spróbowało rozwiązać (wysłało flagę): 17 Ale nie podołało (wysłało tylko złe flagi): 3 Zignorowało zadanie: 109 solve_Whereismypassword1.png try_Whereismypassword1.png Pierwsze rozwiązania: * @{superhero01} rozwiązał zadanie w 18.7 godzin po rozpoczęciu * @{diamentowygimbus} rozwiązał zadanie w 19.01 godzin po rozpoczęciu * @{Swr} rozwiązał zadanie w 19.11 godzin po rozpoczęciu <font size="5">zadanie Obfuscated (kategoria: web) (100p)</span> Rozwiązało zadanie: 19 Spróbowało rozwiązać (wysłało flagę): 21 Ale nie podołało (wysłało tylko złe flagi): 2 Zignorowało zadanie: 105 solve_Obfuscated.png try_Obfuscated.png Pierwsze rozwiązania: * @{akrasuski1} rozwiązał zadanie w 28.65 godzin po rozpoczęciu * @{Hummin} rozwiązał zadanie w 28.86 godzin po rozpoczęciu * @{Henryhenry} rozwiązał zadanie w 29.32 godzin po rozpoczęciu <font size="5">zadanie SS-93 #1 (kategoria: stegano) (50p)</span> Rozwiązało zadanie: 39 Spróbowało rozwiązać (wysłało flagę): 45 Ale nie podołało (wysłało tylko złe flagi): 6 Zignorowało zadanie: 81 solve_SS931.png try_SS931.png Pierwsze rozwiązania: * @{DibbyDum} rozwiązał zadanie w 0.18 godzin po rozpoczęciu * @{Hummin} rozwiązał zadanie w 0.35 godzin po rozpoczęciu * @{alamapsa} rozwiązał zadanie w 1.19 godzin po rozpoczęciu <font size="5">zadanie SS-93 #2 (kategoria: stegano) (200p)</span> Rozwiązało zadanie: 9 Spróbowało rozwiązać (wysłało flagę): 16 Ale nie podołało (wysłało tylko złe flagi): 7 Zignorowało zadanie: 110 solve_SS932.png try_SS932.png Pierwsze rozwiązania: * @{tsugumo} rozwiązał zadanie w 2.06 godzin po rozpoczęciu * @{superhero01} rozwiązał zadanie w 2.88 godzin po rozpoczęciu * @{karol.pysklo} rozwiązał zadanie w 6.7 godzin po rozpoczęciu <font size="5">zadanie xorme (kategoria: re) (400p)</span> Rozwiązało zadanie: 14 Spróbowało rozwiązać (wysłało flagę): 18 Ale nie podołało (wysłało tylko złe flagi): 4 Zignorowało zadanie: 108 solve_xorme.png try_xorme.png Pierwsze rozwiązania: * @{Proxima} rozwiązał zadanie w 2.22 godzin po rozpoczęciu * @{superhero01} rozwiązał zadanie w 2.54 godzin po rozpoczęciu * @{karol.pysklo} rozwiązał zadanie w 2.66 godzin po rozpoczęciu <font size="5">zadanie Colourblind madness (kategoria: misc) (100p)</span> Rozwiązało zadanie: 7 Spróbowało rozwiązać (wysłało flagę): 7 Ale nie podołało (wysłało tylko złe flagi): 0 Zignorowało zadanie: 119 solve_Colourblindmadness.png try_Colourblindmadness.png Pierwsze rozwiązania: * @{Lord Darkstorm} rozwiązał zadanie w 3.3 godzin po rozpoczęciu * @{LKS} rozwiązał zadanie w 16.52 godzin po rozpoczęciu * @{Xert} rozwiązał zadanie w 19.12 godzin po rozpoczęciu <font size="5">zadanie Capture The Data #2 (kategoria: forensics) (300p)</span> Rozwiązało zadanie: 12 Spróbowało rozwiązać (wysłało flagę): 25 Ale nie podołało (wysłało tylko złe flagi): 13 Zignorowało zadanie: 101 solve_CaptureTheData2.png try_CaptureTheData2.png Pierwsze rozwiązania: * @{tsugumo} rozwiązał zadanie w 3.31 godzin po rozpoczęciu * @{symoneo} rozwiązał zadanie w 5.16 godzin po rozpoczęciu * @{superhero01} rozwiązał zadanie w 7.58 godzin po rozpoczęciu <font size="5">zadanie Capture The Data #1 (kategoria: forensics) (100p)</span> Rozwiązało zadanie: 41 Spróbowało rozwiązać (wysłało flagę): 45 Ale nie podołało (wysłało tylko złe flagi): 4 Zignorowało zadanie: 81 solve_CaptureTheData1.png try_CaptureTheData1.png Pierwsze rozwiązania: * @{karolinaa} rozwiązał zadanie w 0.88 godzin po rozpoczęciu * @{Hummin} rozwiązał zadanie w 1.02 godzin po rozpoczęciu * @{big_y} rozwiązał zadanie w 1.09 godzin po rozpoczęciu <font size="5">zadanie Intro (kategoria: !intro) (10p)</span> Rozwiązało zadanie: 114 Spróbowało rozwiązać (wysłało flagę): 122 Ale nie podołało (wysłało tylko złe flagi): 8 Zignorowało zadanie: 4 solve_Intro.png try_Intro.png Pierwsze rozwiązania: * @{Hummin} rozwiązał zadanie w 0.02 godzin po rozpoczęciu * @{Xert} rozwiązał zadanie w 0.02 godzin po rozpoczęciu * @{lysy} rozwiązał zadanie w 0.04 godzin po rozpoczęciu <font size="5">zadanie Kapitan Rozdil (kategoria: stegano) (225p)</span> Rozwiązało zadanie: 6 Spróbowało rozwiązać (wysłało flagę): 24 Ale nie podołało (wysłało tylko złe flagi): 18 Zignorowało zadanie: 102 solve_KapitanRozdil.png try_KapitanRozdil.png Pierwsze rozwiązania: * @{tsugumo} rozwiązał zadanie w 8.46 godzin po rozpoczęciu * @{diamentowygimbus} rozwiązał zadanie w 20.34 godzin po rozpoczęciu * @{szymski} rozwiązał zadanie w 21.28 godzin po rozpoczęciu <font size="5">zadanie Rémy Suárez Ascánder (kategoria: crypto) (400p)</span> Rozwiązało zadanie: 1 Spróbowało rozwiązać (wysłało flagę): 6 Ale nie podołało (wysłało tylko złe flagi): 5 Zignorowało zadanie: 120 solve_RmySurezAscnder.png try_RmySurezAscnder.png Pierwsze rozwiązania: * @{katelx} rozwiązał zadanie w 40.5 godzin po rozpoczęciu <font size="5">Zakończenie</span> To chyba tyle - dzieki jeszcze raz za uczestnictwo i do zobaczenia (może) na przyszłych CTFach. PS. Jak znudzi mi się programowanie to zostanę pisarzem. PPS. Ale jednak chociaż trochę programistą jestem, bo cały ten post został wygenerowany przez skrypt: http://4programmers.net/Pastebin/4612 Technologia = sqlite do wyciągania danych, matplotlib do wykresów (chociaż go nie lubię), oraz jinja2 do templatowania tekstu
edytowany 7x, ostatnio: Rev, 2015-12-23 08:38

Pozostało 580 znaków

2015-12-23 02:53
6

Krótkie ustosunkowanie się do przesłanych ankiet:

Jak oceniliście konkurs:
ankieta2.PNG

Cieszy nas bardzo że większość z ankietowanych oceniło nas dobrze oraz bardzo dobrze :)

Czego chcielibyście więcej:
ankieta1.PNG

Cieszy fakt, że każda kategoria dostała przynajmniej kilka głosów. To znaczy, że każdy mógł znaleźć coś dla siebie.
Widać, że mamy tu dość silną reprezentacje osób które zajmują się technologiami Web, bo zadań w tej kategorii było bardzo dużo a mimo to chcielibyście jeszcze więcej.
Cieszy fakt, ze zadania Stegno wam się podobały. Nie jest to sytuacja często spotykana - zwykle na CTFach te zadania dostają falę hejtu, bo wymagają za dużo zgadywania a za mało umiejętności.
Mała liczba zadań RE (oraz brak zadań z kategorii PWN - binary exploitation) wynikała głównie z tego, że nie wiedzieliśmy kto będzie startował i w związku z tym jakiego typu zadania będą dla was ciekawe. Analogiczny problem był też z poziomem trudności zadań - z jednej strony dobrze by było gdyby nie dało się wszystkiego rozwiązać w 5 minut, ale z drugiej strony wiemy jak frustrujące jest, kiedy wszystko jest za trudne i nie można poradzić sobie z żadnym zadaniem.
Dobrze wiedzieć, że są osoby zainteresowane zadaniami na "niskim poziomie", którym nie straszny debugger i deasembler.

Które zadania się wam nie podobały i dlaczego:

Księżniczka Lea - chyba znalazłem w nim błąd

Należało go nam zgłosić i coś byśmy zaradzili :) Jest to częsta sytuacja na CTFach, że jakieś zadanie można rozwiązać inaczej niż zakładali jego twórcy. Trudno tego uniknąć, ale zawsze można o tym poinformować zyskując przy tym jakieś dodatkowe punkty ;)

te z tymi kodami i szyframi. kompletnie nie wiem jak do tego się zabrać i co trzeba umieć.
Cebula cipher, ot takie kombinowanie, może po prostu nie wiedziałem jak to dalej gryźć
Te z tymi szyframi.
crypto były albo za proste, albo trochę za wymagające

Szkoda że crypto wam się nie podobało, może dlatego, że mało kto ma z tym styczność a do zrobienia RSA czy AESa trzeba było jednak trochę doczytać. Do czego zresztą zachęcamy, bo zarówno RSA jak i AES są powszechnie stosowane i warto rozumieć kiedy są bezpieczne, a kiedy nie za bardzo ;)
Jeśli chodzi o cebulę to staraliśmy się tak dobierać szyfry, żeby to były bardziej kodowania, a nie szyfry. Koniec końców wiele osób zrobiło zadanie z Cebulą więc chyba nie było takie straszne. Szczególnie, że dawaliśmy punkty za każdy poziom - w trakcie zwykłego CTFa flaga byłaby dopiero na samym końcu. A tak chcieliśmy was dodatkowo zmotywować.

Do you even Captcha. Dlatego że miałem je zrobione w 90% tylko serwer nie akceptował odpowiedzi (to pewnie moja wina, ciasteczka albo coś).
Przepisywanie captcha i pomyłka w 198/200 kodzie :D
CAPTHA, bo to masakra gdy trzeba patrzeć ~30minut, czy zautomatyzowany OCR dobrze rozwiązuje i przy 170 razie, gdy oczy bolą i już nie zwraca się tak bardzo uwagi ten popełnia błąd wstawiając 'V' zamiast 'W', albo coś w tym stylu.
zablokujcie nast. razem reczne wpisywanie captcha

Zadania działały więc jeśli ktoś miał problem z wysłaniem rozwiązania na serwer to znaczy że problem leżał po jego stronie :)
Przepisywania ręcznie nie będziemy komentować - można było to zadanie zrobić automatem więc sam sobie jesteś winien.
Jeśli chodzi o mylący się solver jedyne co można zasugerować to: trzeba było zrobić lepszy solver! :)
Jeśli chodzi o blokadę pisania ręcznego to nie bardzo jest jak to zrealizowac. Można było dać więcej kodów np. 1000 zamiast 200, ale wtedy nawet automatyczny solver mieliłby to bardzo długo i baliśmy się że ktoś może po prostu zwyczajnie nie zdążyć mimo, że przygotuje poprawne rozwiązanie.
Osoby które napisały automatyczne solvery raczej chwaliły te zadania bo pozwoliły nauczyć się obsługi tesseracta. Warto generalnie myśleć o zadaniach w kontekście tego czego się można nauczyć, a nie tylko "jak zdobyć te kilka punktów".

w sumie ciezko powiedziec, mysle ze zadania z plikami ktore wystarczy jedynie otworzyc w notatniku i zrobic ctrl+f zeby znalezc flage sa troche za latwe
easymode i SS93#1, bo starczy strings xxx
otworz plik i ctrl+f/grep p4

Chcieliśmy żeby było trochę łatwych zadań, ale może faktycznie kilka zadań do rozwalenia notatnikiem to przesada. No i faktem jest, że nie zauważyliśmy, że niektóre zadania można tak prosto rozwiązać :) Zadanie z pcapem większość z nas od razu załadowała do wiresharka i flagę/hasło zauważyła już przy analizie pakietów. Analogicznie z easy re, część z nas nawet nie próbowała tego przeglądać hexedytorem tylko od razu załadowała do deasemblera / debugera.

xorme- za duży przeskok trudności między easymode a xorme;

Jest bardzo niewiele miejsca na zadania “pomiędzy”, bo xorme było nadal bardzo łatwe. Chętnie posłuchamy propozycji zadań trudniejszych od easymode a łatwiejszych od xorme :) Bo oba te zadania opierały się o proste porównanie wpisanej flagi z tą zapisaną w pamięci programu.

exe bo m$ (chyba ze jest jakies rozwiazanie bez uruchamiania windowsa),

Można było to zadanie rozwiązać za pomocą statycznej analizy kodu, bez konieczności uruchamiania go, ale faktycznie można by pomyśleć o udostępnianiu paczki pod różne systemy.

English, do you speak it? & Do they speak English in "what"?
Misc, jakoś tak.

Chcieliśmy żeby każdy znalazł coś dla siebie a zadania Misc były przygotowane pod programistów, niemniej rozumiemy że nie każdemu mogły podejść.
Cieszy jednak fakt, że wiele osób chwaliło te zadania w swoich ankietach, więc znalazły one swoich odbiorców.

piet

Na ctfach nie zawsze mamy wybór w jakim jezyku programujemy. Czasami zdarzją sie code golfy w php, perlu czy rubym. Nikt nie pyta nas czy kiedykolwiek programowalismy w tym jezyku, trzeba się szybko dostosować i osiągnąć niesamowicie krótki kod. Odpowiedzią na zarzuty ludzi, że niektórzy maja fory, bo wczesniej używali danego jezyka są języki ezoteryczne. Nikt ich nie używa i są mniej wiecej równe szanse. Każdy uczy się ich na bieżąco. Zdarzyło się nawet zadanie w jezyku stworzonym przez organizatorów, który nie był nigdzie udokumentowany a dostawaliśmy tylko jego interpreter również w nienajcześciej używanym języku. Takie zadania są rozwijające.

Problemy techniczne w zadaniach:

W Haśle Shaloma - podwójne myślniki dużo myliły.

W rzeczywistości nie były to podwójne myślniki tylko znaki z klawiszem shift, ale uznaliśmy że może to być troche zbyt skomplikowane stąd też ułatwiliśmy trochę zadanie podając wyrażenie regularne oraz informacje o tym z jakiego zakresu są znaki.

W drugim zadaniu językowym - nie byłem pewien, czy dobrze skróty rozszyfrowałem przez jakiś czas.

To była część zadania więc trudno zaliczyć to jako “problem z zadaniem”. Dodatkowo skróty były standardową klasyfikacją ISO języków. Poza tym niektóre osoby poradziły sobie i bez rozszyfrowania, używając serwera jako źródła danych w danym języku. Nastepnym razem ‘’try harder’’ ;)

Czasem padał serwer (rozpoznawanie języka) ale bardzo szybko przywracaliście go do życia.
English. do you speak it? - odniosłem wrażenie, że w sobotę był problem z podpięciem się
Chwilowy brak dostępu przy rozwiązywaniu captcha i 'do u speak it', ale bardzo szybko to naprawiono

Niestety to prawda, że chyba 2 albo 3 razy z niewyjaśnionych przyczyn padły zadania z rozpoznawaniem języka. Możliwe że był to jakiś problem z przeciążeniem serwera - może ktoś podpiął dziesiątki solverów na raz? Niemniej w zasadzie przez całe 48h non-stop ktoś był dostępny na kanale IRC więc jak tylko pojawiła się informacja, że coś przestało działać zaraz było przywracane do życia.
Na przyszłość będziemy myśleć o jakimś load balancingu dla tego typu zadań.

Polecenia mogłyby być napisane jaśniej.

Staraliśmy się żeby polecenia były jasne a jednocześnie nie zdradzały za dużo w danym zadaniu. Jednocześnie monitorowaliśmy postępy użytkowników i staraliśmy się reagować robiąc update dla niektórych zadań oraz podając informacje na IRCu. Dotyczy to szczególnie problemów z formatem flag, kiedy widzieliśmy że ktoś zdobył flagę a ma problem z jej wysłaniem :)
Dodatkowo w zasadzie przez całe 48h non-stop ktoś był dostępny na kanale IRC więc można było pytać i wyjaśniać wszelkie wątpliwości.


Non nascuntur sed fiunt christiani :)
Nie masz kłopotów? Kup komputer...

[Na pw przyjmuje tylko zlecenia. Masz problem? Pisz na forum, nie do mnie]
edytowany 1x, ostatnio: Shalom, 2015-12-23 02:55

Pozostało 580 znaków

2015-12-23 03:04
msm
1

Nie jest to sytuacja często spotykana - zwykle na CTFach te zadania dostają falę hejtu, bo wymagają za dużo zgadywania a za mało umiejętności.

To chyba nie nasze stegano! :P

Księżniczka Lea - chyba znalazłem w nim błąd

Wątpliwe skoro kilka osób zrobiło - ale tak jak shalom pisze, najlepiej takie rzeczy zgłaszać.

Zadanie z pcapem większość z nas od razu załadowała do wiresharka i flagę/hasło zauważyła już przy analizie pakietów

To Chyba Ty. :P. Chociaż przy easyre liczyłem że ktoś chociaż załaduje do IDY (nie byłoby dłużej niż hexedytorem).

xorme- za duży przeskok trudności między easymode a xorme;

...a xorme to dosłownie najprostsze zadanie RE (jakie byłem w stanie wymyślić) którego nie da się rozwiązać notatnikiem ;).

Ad Lea: Hej, to akurat ja pisałem. Nie zdążyłem zgłosić do Was, bo za chwilę miałem pociąg, było to w środku nocy w niedzielę. Błąd był taki, że za łatwo dostałem flagę, bez length attack tylko kodowanie URL. I sorry za niezgłoszenie, ale niedziela była dla mnie dosyć zajętym z powodów osobistych dniem i już nie miałem głowy do tego. Przypomniałem sobie w poniedziałek dopiero. - big_y 2015-12-23 11:19
Wpis w ankiecie do xorme- to akurat mój komentarz, który się trochę zdezaktualizował :) Okazało się, że miałem dość dużo komplikacji z Cygwinem (nie udało mi się przejść do właściwego kodu w Ollym- m.in. natrafiał na jakiegoś breakpointa nie ustawianego przeze mnie i kończył program zanim przeszedł do wykonywania z niego właściwych instrukcji). Zatem- byłem święcie przekonany, że celem zadania jest: a) pokonanie pułapek zastawionych na debugger b) znalezienie kodu odpowiedzialnego za xorowanie c) odwrócenie go. - Henryhenry 2015-12-23 17:54
@big_y jeśli udało Ci się rozwiązać zadanie w sposób inny niż zamierzyliśmy to też się liczy. Raz @Shalom, wysłał puste hasło i login i dostał flagę w bardzo trudnym zadaniu, takie rzeczy zdarzają się najlepszym :D - other019 2015-12-23 21:52

Pozostało 580 znaków

2015-12-23 13:32
0

Brawa za organizację. Ja niestety dopiero we wtorek dorwałem się do kompa by zobaczyć, że już po ptakach. Klikam sobie część zadań nadal, bez zaglądania póki co w rozwiązania (bo to przecież byłoby bez sensu). Kilka od razu odpuszczam z braku czasu i wyzwania pokonkursowego (np. re, misc). Została mi w sumie kategoria web, za to najdłużej męczyłem chyba Rozdila, ale pora uznać porażkę ;) Tak samo niestety, jak z Cebulą #3 - nijak nie wbiłem się w tok rozumowania autora.

Jedna uwaga, to byłoby fajnie, gdyby strona główna oznaczała wykonane przez nas zadania, choćby inny kolor boxa.

No i pewien zaskakujący 3 literowy nick wśród zawodników :)


"In the brave new world of the year 2000, a kiss can still break your heart." - Program from Cirque du Soleil's Alegría
Nad tymi gwiazdami jest wszechświat szybujących potworów! Wiedziałaś?
2GB za free :)
@Marooned normalnie strona to oznacza, ale jako że konkurs sie skończył to wyłączyliśmy możliwość "rozwiązania" zadania. Po prostu w bazie nie zapisuje sie teraz informacja że zadanie zostało przez ciebie rozwiazane, żeby scoreboard oddawał sytuacje z końca konkursu. - Shalom 2015-12-23 13:47
łee buu ;-) ok, ale w sumie szkoda - Marooned 2015-12-23 13:56
Który nick? ;) - LKS 2015-12-23 19:14
Dokładnie ten ;-) - Marooned 2015-12-31 12:21

Pozostało 580 znaków

2015-12-23 14:19
0

Taki CTF to świetna okazja do rekrutacji nowych członków :D Takimi statystykami też się podzielcie ilu nowych zrekrutowaliście :D


PEBKAC - Problem Exists Between Keyboard And Chair
Na razie nie szukamy nowych członków drużyny :P. I tak mamy dwie osoby z którymi ustaliliśmy że poczekamy do 2016 roku. - msm 2015-12-23 14:21
Swoją drogą nie spodziewałem się, że po tym ctf;ie powstawnie team. Bardziej obstawiałem, że będziecie łowić :) - panryz 2015-12-23 14:22
Spoko, zaczną żałować jak zaczniemy ich wyprzedzać :P - big_y 2015-12-23 14:44
A tam, im więcej konkurencji (polskiej) tym lepiej :>. - msm 2015-12-23 15:39

Pozostało 580 znaków

2015-12-23 17:30
0

BTW, jest szansa, że zadania trochę powiszą? Wiadomo, teraz Święta, Sylwki i te sprawy i z czasem słabo, a w paru chciałbym sobie jeszcze powalczyć zanim kliknę w wątek writeupowy :)


"In the brave new world of the year 2000, a kiss can still break your heart." - Program from Cirque du Soleil's Alegría
Nad tymi gwiazdami jest wszechświat szybujących potworów! Wiedziałaś?
2GB za free :)
Część zadań jest offline (crypto, stegano, forensics) a te które są online (web oraz misc) są podwieszone w pierwszym poście w wątku z writeupami więc w najgorszym wypadku możesz to sobie zawsze postawić lokalnie ;) - Shalom 2015-12-23 17:38
Thx, zostało mi właśnie całe web. Tak czy siak, dzięki za info. - Marooned 2015-12-23 17:44
A wszystko inne zrobiłeś? :D :D - Shalom 2015-12-23 17:53
Odpowiedź masz w poprzednim poście :) - Marooned 2015-12-23 17:53

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

2 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 1

Robot: CCBot