Advertisement
Guest User

ForumConnect v2

a guest
Aug 10th, 2010
616
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.17 KB | None | 0 0
  1. <?PHP
  2. /* ForumConnect by Oscar @ Game-Tuts.com */
  3.  
  4. $salt = "MaK9d"; //For protection against server emulation, change this.
  5.  
  6. $path = "./"; //Path to your forum relative to this PHP file, only change if this file is not in your forum folder.
  7.  
  8. /**************************************
  9. ******** Don't edit below this ********
  10. **************************************/
  11.  
  12. $user = addslashes(base64_decode($_GET['user']));
  13. $pass = addslashes(base64_decode($_GET['pass']));
  14.  
  15. $rid = $_GET['rid'];
  16. $sha1rid = sha1($rid.sha1($salt));
  17.  
  18. if($_GET['act'] == "test"){
  19.     echo "ForumConnect by Oscar";
  20.     exit();
  21. }
  22.  
  23. if($user == ""){
  24.     die("No username given.");
  25. }
  26. elseif($pass == ""){
  27.     die("No password given.");
  28. }
  29. elseif($rid == ""){
  30.     die("No random ID given.");
  31. }
  32.  
  33. $indexContents = file_get_contents($path."index.php")or die("Can't open 'index.php'");
  34.  
  35. if(doesContain($indexContents, "$forum_version = 'SMF 1.1")){
  36.     $forum = "smf1";
  37.     verifySmf();
  38. }
  39. elseif(doesContain($indexContents, "$forum_version = 'SMF 2.")){
  40.     $forum = "smf2";
  41.     verifySmf();
  42. }
  43. elseif(doesContain($indexContents, "vBulletin 3") && doesContain($indexContents, "| http://www.vbulletin.com/license.html")){
  44.     $forum = "vb3";
  45.     verifyvB();
  46. }
  47. elseif(doesContain($indexContents, "vBulletin 4") && doesContain($indexContents, "| http://www.vbulletin.com/license.html")){
  48.     $forum = "vb4";
  49.     verifyvB();
  50. }
  51. elseif(doesContain($indexContents, "version 2.") && doesContain($indexContents, "@package   InvisionPowerBoard")){
  52.     $forum = "ipb2";
  53.     verifyIPB2();
  54. }
  55. elseif(doesContain($indexContents, "IP.Board v3.") && doesContain($indexContents, "@package     IP.Board")){
  56.     $forum = "ipb3";
  57.     verifyIPB3();
  58. }
  59. else{
  60.     die("Forum type could not be determined.");
  61. }
  62.  
  63. ### SMF = sha1(toLower(username).password) ###
  64. function verifySmf(){
  65.     global $user, $pass;
  66.    
  67.     require $path."Settings.php";
  68.     $sha1Pass = sha1(strtolower($user).$pass);
  69.    
  70.     mysql_connect($db_server, $db_user, $db_passwd);
  71.     mysql_select_db($db_name);
  72.     $result = mysql_query("SELECT * FROM `smf_members` WHERE `passwd` = '$sha1Pass'");
  73.    
  74.     if($result == false){
  75.         prntOutput(false);
  76.         exit;
  77.     }
  78.    
  79.     $row = mysql_fetch_row($result)or die(prntOutput(false));
  80.    
  81.     if(mysql_num_rows($result) == 1){
  82.         $userGroup = $row[4];
  83.         $userName = $row[1];
  84.         prntOutput(true, $userGroup, $userName);
  85.     }
  86.     else{
  87.         prntOutput(false);
  88.     }
  89. }
  90.  
  91. ### vBulletin 3 & 4 = md5(md5(password).salt) ###
  92. function verifyVb(){
  93.     global $user, $pass;
  94.    
  95.     require $path."includes/config.php";
  96.    
  97.     mysql_connect($config['MasterServer']['servername'].":".$config['MasterServer']['port'], $config['MasterServer']['username'], $config['MasterServer']['password']);
  98.     mysql_select_db($config['Database']['dbname']);
  99.    
  100.     $result = mysql_query("SELECT *  FROM `".$config['Database']['tableprefix']."user` WHERE `username` = '$user'");
  101.    
  102.     if($result == false){
  103.         prntOutput(false);
  104.         exit;
  105.     }
  106.    
  107.     $row = mysql_fetch_row($result)or die("False:0:False:0");
  108.    
  109.     $md5Pass = md5(md5($pass).$row[48]);
  110.    
  111.     if($row[5] == $md5Pass){
  112.         $userGroup = $row[1];
  113.         $userName = $row[4];
  114.         prntOutput(true, $userGroup, $userName);
  115.     }
  116.     else{
  117.         prntOutput(false);
  118.     }
  119. }
  120.  
  121. ### IPB 2 md5(md5(salt).md5(password)) ###
  122. function verifyIPB2(){
  123.     global $user, $pass;
  124.    
  125.     require $path."conf_global.php";
  126.    
  127.     mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']);
  128.     mysql_select_db($INFO['sql_database']);
  129.    
  130.     $result = mysql_query("SELECT *  FROM `".$INFO['sql_tbl_prefix']."members` WHERE `name` = '$user'");
  131.    
  132.     if($result == false){
  133.         prntOutput(false);
  134.         exit;
  135.     }
  136.    
  137.     $row = mysql_fetch_row($result)or die("False:0:False:0");
  138.    
  139.     $userID = $row[0];
  140.     $userName = $row[1];
  141.     $userGroup = $row[2];
  142.    
  143.     $result = mysql_query("SELECT *  FROM `".$INFO['sql_tbl_prefix']."members_converge` WHERE `converge_id` = '$userID'");
  144.    
  145.     if($result == false){
  146.         prntOutput(false);
  147.         exit;
  148.     }
  149.    
  150.     $row = mysql_fetch_row($result)or die("False:0:False:0");
  151.    
  152.     $realHash = $row[3];
  153.     $salt = $row[4];
  154.     $md5Pass = md5(md5($salt).md5($pass));
  155.    
  156.     if($realHash == $md5Pass){
  157.         prntOutput(true, $userGroup, $userName);
  158.     }
  159.     else{
  160.         prntOutput(false);
  161.     }
  162. }
  163.  
  164. ### IPB 3 md5(md5(salt).md5(password)) ###
  165. function verifyIPB3(){
  166.     global $user, $pass;
  167.    
  168.     require $path."conf_global.php";
  169.    
  170.     mysql_connect($INFO['sql_host'], $INFO['sql_user'], $INFO['sql_pass']);
  171.     mysql_select_db($INFO['sql_database']);
  172.    
  173.     $result = mysql_query("SELECT *  FROM `".$INFO['sql_tbl_prefix']."members` WHERE `name` = '$user'");
  174.    
  175.     if($result == false){
  176.         prntOutput(false);
  177.         exit;
  178.     }
  179.    
  180.     $row = mysql_fetch_row($result);
  181.    
  182.     $userName = $row[51];
  183.     $userGroup = $row[2];
  184.    
  185.     $realHash = $row[61];
  186.     $salt = $row[62];
  187.     $sha1Pass = md5(md5($salt).md5($pass));
  188.    
  189.     if($sha1Pass == $realHash){
  190.         prntOutput(true, $userGroup, $userName);
  191.     }
  192.     else{
  193.         prntOutput(false);
  194.     }
  195. }
  196.  
  197. function prntOutput($isTrue, $userGroup = 0, $userName = 0){
  198.     global $sha1rid;
  199.    
  200.     if($isTrue == true){
  201.         echo base64_encode("True:".$userGroup.":".$userName.":".$sha1rid);
  202.     }
  203.     else{
  204.         echo base64_encode("False:0:False:0");
  205.     }
  206. }
  207.  
  208. function doesContain($haystack, $needle){
  209.     if(strpos($haystack, $needle) == false){
  210.         return false;
  211.     }
  212.     else{
  213.         return true;
  214.     }
  215. }
  216.  
  217. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement