BitMap Posted June 22, 2014 Report Posted June 22, 2014 (edited) Vazand mai multe challenge-uri din categoria crypto, am zis ca sa incerc si eu unul asemanator, dar fiindca nu e asa de complex am mai improvizat ceva sa fie mai interesant. Sper sa va placa.Ideea e simpla, avem o linie de cod php, care, odata rulata trebuie sa afiseze mesajul original:echo mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, base64_decode($cipher_text), MCRYPT_MODE_CFB);$cipher_text e aproape gata:1082480B4EAD8686507B14CA998024DDC3EC26313C49D5166A356172C0Apoi, tot ce ne mai ramane de gasit pentru a-l decripta este un key.Fiecare dintre noi are unul, l-am primit cand ne-am inregistrat.Eu cica as bea vin, deci al meu nu este, rank-ul lui este mult prea mare.Trimiteti key-ul si mesajul original prin PM, am sa raspund cat de repede pot.// editSe poate discuta si liberSucces Solvers:- @gio33// CLOSED Edited June 23, 2014 by BitMap adding solvers Quote
mah_one Posted June 22, 2014 Report Posted June 22, 2014 Apropo, ai uitat sa ne zici un initial vector. Quote
BitMap Posted June 22, 2014 Author Report Posted June 22, 2014 Salut, daca te referi la cipher_text, teoretic ar trebui sa fie base64. Ar trebui transformat din ceva in base64.Ar parea sa fie hexa, dar poate nu e chiar baza 16. Quote
mah_one Posted June 22, 2014 Report Posted June 22, 2014 (edited) metoda se aplica:echo mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key[$i], $cipher_text, MCRYPT_MODE_CFB, $iv)tu cand ai generat $cipher_text ai avut pe langa $key si un $iv, trebuie sa il zici, ca altfel trebuie sa facem noi un brute force pe 16 caractere (pading-ul).Tu ai rulat ce cod ai dat?Ai vazut ca iti da eroare de pading?Ne mai trebuie Initial Vector pe langa key.Si cand zic iv, nu ma refer la cipher text.... Edited June 22, 2014 by mah_one Quote
BitMap Posted June 23, 2014 Author Report Posted June 23, 2014 Am inteles, problema e ca eu nu am specificat acel iv, si cred ca s-a pus default \0.A mers ok la rulare, fara warning. Dar vezi, daca nu am asa mari cunostiinte nu m-am gandit ca ar fi o problema.Codul era in baza 15, care transformat in hexa este:6B3266463359474A4846392B645A3459326D68434130696E59773D3D// acum, daca incercam sa il transformam in string obtinem:k2fF3YGJHF9+dZ4Y2mhCA0inYw==Eu nu m-am gandit la bruteforce sau alte lucruri,poate nu am fost nici eu prea clar, imi cer scuze, nu vreau sa va duc in eroare sau altceva.Trebuie aflat doar acel key, key care se afla la unul dintre membrii. Si nu poate fi decat aici pe forum undeva.Sunt multi cu rank mai mare ca mine, dar mai putini cu rank foarte mare, poate si ei sunt mai multi dar fiindca nu ii cunosc, numai intr-un singur loc pot sa ii vad.E mai mult o treaba pentru detectivi. Poate si key e putin spus, eventual primary key?Daca e prea aiurea se poate inchide / sterge. Asta e, mai invatam, mai incercam. Quote
mah_one Posted June 23, 2014 Report Posted June 23, 2014 Am incercat toate combinatiile, 'Bautor de ...' si 'Cultul betivilor', nici una nu a mers.Imi scapa ceva? Quote
BitMap Posted June 23, 2014 Author Report Posted June 23, 2014 Userul este unul din lista aceasta:https://rstforums.com/forum/showgroups.phpNu sunt multi, dar trebuie sa le gasesti acel key.Fiecare dintre noi are unul, l-am primit cand ne-am inregistrat.Poate si key e putin spus, eventual primary key? Quote
mah_one Posted June 23, 2014 Report Posted June 23, 2014 Cel mai probabil key-ul este 'Cultul betivilor', dar nu reusesc sa decriptez. Ceva nu ai explicat clar sau nu am inteles eu...Ruleaza si tu ce ai dat mai sus si lasa un feedback cu rezultatul.uite ce key-uri am folosit:prima incercare:$key = ['Bautor de laptic','Bautor de ceai','Bautor de bere','Bautor de vin','Bautor de palinca','Bautor de gin','Bautor de whiskey','Bautor de vodka','Bautor de absinth','Cultul betivilor'];a doua incercare:$key = ['aelius','em','Nemessis','Nytro','wildchild','Zatarra','Death','Kenpachi','kw3rln','moubik','SlicK','sysgh0st','virusica','hate.me','M2G','Maximus','nedo','TheTime','Usr6','Vlachs'];a treia:$key = ['Super Moderators','Retired Administrators','Administrators']; Quote
Byte-ul Posted June 23, 2014 Report Posted June 23, 2014 Userul este unul din lista aceasta:https://rstforums.com/forum/showgroups.phpNu sunt multi, dar trebuie sa le gasesti acel key.Am incercat si eu cu bautor de ceai, administrator, retired administrator, super moderator, user, registered user, registered users, member list, virusica, profil, profile, user profile (toate cu litere mari si mici, degeaba) Quote
Gio33 Posted June 23, 2014 Report Posted June 23, 2014 De ce nu incercati id-urile unice ale userilor din acea lista?Hint: il gasiti cand vreti sa dati PM acelor useri. Quote
BitMap Posted June 23, 2014 Author Report Posted June 23, 2014 OK, cred ca se poate inchide. @gio33.Mersi Quote
mah_one Posted June 23, 2014 Report Posted June 23, 2014 Daca vreti si un script in php sa rezolvati:$cipher_text = convBase('1082480B4EAD8686507B14CA998024DDC3EC26313C49D5166A356172C0','0123456789ABCDE','0123456789ABCDEF');$cipher_text = pack('H*',$cipher_text);$iv = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0";//$key = ['Bautor de laptic','Bautor de ceai','Bautor de bere','Bautor de vin','Bautor de palinca','Bautor de gin','Bautor de whiskey','Bautor de vodka','Bautor de absinth','Cultul betivilor'];$key = ['22968','4421','133193','3871','22232','989','21346','29834','42826','30361','60262','23870','5873'];for($i=0;$i<count($key);$i++){echo mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key[$i], base64_decode($cipher_text), MCRYPT_MODE_CFB, $iv).'<br />';}function convBase($numberInput, $fromBaseInput, $toBaseInput){ if ($fromBaseInput==$toBaseInput) return $numberInput; $fromBase = str_split($fromBaseInput,1); $toBase = str_split($toBaseInput,1); $number = str_split($numberInput,1); $fromLen=strlen($fromBaseInput); $toLen=strlen($toBaseInput); $numberLen=strlen($numberInput); $retval=''; if ($toBaseInput == '0123456789') { $retval=0; for ($i = 1;$i <= $numberLen; $i++) $retval = bcadd($retval, bcmul(array_search($number[$i-1], $fromBase),bcpow($fromLen,$numberLen-$i))); return $retval; } if ($fromBaseInput != '0123456789') $base10=convBase($numberInput, $fromBaseInput, '0123456789'); else $base10 = $numberInput; if ($base10<strlen($toBaseInput)) return $toBase[$base10]; while($base10 != '0') { $retval = $toBase[bcmod($base10,$toLen)].$retval; $base10 = bcdiv($base10,$toLen,0); } return $retval;} Quote