Jump to content
BitMap

[mcrypt] Challenge

Recommended Posts

Posted (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:



1082480B4EAD8686507B14CA998024DDC3EC26313C49D5166A356172C0

Apoi, 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.

// edit

Se poate discuta si liber

Succes :D

  • Solvers:
    - @gio33

// CLOSED

Edited by BitMap
adding solvers
Posted

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.

Posted (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 by mah_one
Posted

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.

Posted

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'];

Posted

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;
}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...