total descendants:: total children::9 77 ❤️
|
Takze, po 2 tyzdnoch contestu prichadza jeho koniec, vyhlasenie vitazov a full-disclourse bugov. Bolo najdenych celkove 30 bugov, z nich 12 obzvlast skodnych (kritickych). (teda ovladanie jesterkami na 40%) 1. miesto: id 660 (miloo) Suverenny vitaz ktory ako jediny dosiahol metu najvyssiu. Ako prvy nasiel SQL injection, php shell, a postupne to dotiahol az na roota. Nalezy (chronologicky): 1: SQL injection v POSTe "event=configure_system_access&node_system_access=private',node_name=(select password from users where user_id=$ID_OBETE), node_id='$ID_UTOCNIKA" na "https://kyberia.sk/id/$ID_UTOCNIKA" Utocnik takto mohol tahat lubovolne data z sql databazy rychlostou jeden string na 2 requesty. Vobec prva najdena SQL injection. 2: SQL injection v /id/19/ -> set_bookmark_category, v node_id. 3: SQL injection v delete mail. (cislo mazanej spravy nie je osetrene). 4: SQL injection v event=K (node_chosen[] checkbox) 5: PHP shell, a sice: upload datanod nekontroloval dostatocne priponu uploadovaneho suboru, takze bolo mozne uploadnut "php shell", a zadavat prikazy priamo z browseru. Jediny hacik bol v tom, ze kde sa tento subor uploadol: bolo to do kyberia.sk/files/`id_usera`/`id_nody`.php , co kopu ludi zmiatlo, a aj ked svoje phpcko uploadli, nenasli ho a nezneuzili. miloo ho uspene nasiel a pouzil, "e1m1" a "k" si sice nejake phpcka uploadli, ale pravdepodobne ich nenasli;) 6: Root shell: Po ziskani php shellu miloo tento bug nahlasil, a aby mu este chvilu trvalo kym ziska roota, bol operativne zapnuty php safe_mode (ktory bol z "historickych" dovodov vypnuty). Pri zapnutom safe_mode by malo php vediet pristupovat iba do webrootu a jeho podadresarov, a nemalo by vediet volat system(). miloo ale nasiel adresar cron, do ktoreho mal pravo zapisu, a skripty v ktorom su raz za cas vykonane. Takze si tam pridal perlovsky skript, ktory sa mu po case nakonektil na jeho masinu, a tym ziskal plnohodnotny interaktivny shell. Potom uz stacilo pouzit exploit na stare jadro, a voila!: jeden root navyse. Stare jadro tam bolo zase z dovodu historickych, a sice rucne kompilovany kernel, a kazdy sa bal ho prebuildit, aby to este nabootovalo. 2-3. miesto: id 2913932 (k), id 1580092 (sine), id 1595477 (e1m1) Kedze som nebol schopny rozumne rozhodnut kto z tychto 3 mladikov nasiel najzavaznejsie chyby rozhodol som sa 2. az 3. miesto priradit vsetkym trom (bez poradia). Vsetci traja nasli chyby, ktore by im dovolili pristupovat viac menej k datam lubvolneho uzivatela kyberie. Nie uplne premyslenym systemom nahlasovania bugov som sposobil, ze plny potencial niektorych ucastnikov sa nemohol rozvinut, takze tentokrat su si vsetci traja rovni. Najdene bugy: id 2913832 (k) 1: stored XSS v nodename (IE only) 2: SQL injection v konfiguracii nody. V poliach silencelist, masterlist, executelist, banlist a oplist nebol osetrovany apostrof na vstupe, a teda sa dali zneuzit na sql injection. 3: reflected XSS v mene usera (mail) 4: reflected XSS v archiv hladani 5: Dalsia sql injection (detaily zatial cenzurovane) 6: Neprijemna vlastnost, ktora nie je uplne zavazna, ale tazko sa odstranuje a bude ju treba riesit systematicky. (detaily zatial cenzurovane) id 1580092 (sine) 1: CSRF (pri zmene emailu) 2: reflected XSS v preview 3: reflected XSS v chat 4: reflected XSS pri registrácii (login aj email) 5: session fixation na cookie PHPSESSID 6. reflected XSS v search 7. stored XSS v ankete 8. v configure v poliach silencelist, masterlist, executelist, banlist a oplist je aj reflected XSS 9. SQL injection v configure_external_access v node. Dopad rovnaky ako v sqli od id 660. Zaroven aj XSS. 10. Takmer blind SQL injection v logine (cez id). Da sa ziskat jeden bit na 1 request. (teoreticky mozno aj viac) 11. Stored XSS v poste, ked user posle mail sam sebe (vo vsetkych atributoch). Nie je to priamo zneuzitelne, ale da sa tak premenit reflected XSS na stored XSS. id 1595477 (e1m1) 1: Local file include (directory traversal). Cez -> event=../../../../../../../../etc/passwd%00 Ostatni: Samozrejme nesmieme zabudnut ani na ostatnych ktory sa zucastnili, a sice (bez poradia) id 3764244 (Harvie) 1: nodu s nastavenym net=false videt bez prihlasenia z parrent nody, ktora ma net=true 2: presna identifikacia v http headroch (napr PHP/5.2.0-8+etch13) id 956 (gnomon) 1: je mozne preparentovat prispevok do privatnej nody kam user nema pristup id 1859269 (Toth) 1: V user submissions children sa zobrazuju privatne nody 2: Do moderated nody sa da zapisat cez id/noda/4 id 2244 (Xanthix) 1: Stored XSS v userinfo Dakujem vsetkym zucastnenym, dufam ze ked nic ine, aspon sa naucili nieco nove. Contest bol myslim vyhodny pre vsetky zucastnene strany: Kyberia sa aspon trochu zabezpecila, fixlo sa 12 najzavaznejsich z najdenych chyb, roxori si zlepsili skill, a nezainteresovana verejnost vidi ako mozu byt veci na pikacu, aj ked to nie je na prvy pohlad vidiet. (a neskor mozno zisti, ze je to tak skoro vsade;) A tiez ze informacie maju tendenciu unikat, a sakra sa oplati rozmysliet si co kde zverejnim, hoci aj v privatnej node. Co sa tyka dopadu, tak vsetci 4 umiestneni na bodovanych prieckach by sa teoreticky (a niektory aj velmi prakticky) boli schopny dostat sa k lubovolnej node lubovolneho usera, prispevku, poste, k hashu hesla, emailovej adrese, ... Z toho vyplyva, ze vase heslo na kyberiu by teoreticky mohlo byt zname x ludom, a obzvlast ak ho pouzivate este niekde inde by nemusel byt zly napad si ho zmenit. Vsetci styria vitazi ziskavaju prestiz;), konta na ozivenom stroji c0re, pozvanku na najblizsiu hysteria session a pripadne ine, sukromne dohodnute benefity. n. |
| |||||||||||||||||||||||||||