Scripts
PHP md5 bruteforcer
Een (klein) PHP script die een normaal md5 wachtwoord kan kraken. Ik heb dit script geschreven met hoofdpijn dus het zal misschien makkelijker kunnen. Op een één of andere manier is het script (bij 4 karakters) al 7 seconden sneller als ik deze regel: round((getmicrotime() - $time_start), 9) gebruik i.p.v. losse variabelen.
md5.php
<?php
set_time_limit(0); //De pagina mag net zolang blijven laden totdat we het wachtwoord hebben.
function getmicrotime() { //Uhm geen idee waar ik deze functie vandaan heb o.O
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$time_start = getmicrotime(); //Begin tijd.
function x($string, $maxLength, $hash, $chars) {
global $time_start;
if (strlen($string) > $maxLength) return false; //Stoppen wanneer de maximale lengte is berijkt.
foreach($chars as $char) {
if (md5($string.$char) == $hash) {
echo "Found string: ".$string.$char;
echo "<br /><small>Time: ".round((getmicrotime() - $time_start), 9)." seconds.</small>";
exit(); //Het script stoppen (beetje slordig maar wist geen andere manier).
}
}
foreach($chars as $newStr) {
x($string.$newStr, $maxLength, $hash, $chars);
}
}
function bruteForce($hash, $maxLength, $chars) {
for ($i=0; $i<$maxLength; $i++) {
foreach($chars as $char) {
if ($i==0) {
$char = "";
}
x($char, $i, $hash, $chars);
}
}
}
$hash = $_REQUEST['h'];
$chars = str_split("abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"); //Het moet een array zijn van alle karakters die je wilt gebruiken.
bruteForce($hash, 8, $chars);
?>
Reacties
0