Advertisement
ApacheLynx

COH - Create Account SQL

May 4th, 2019
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 2.50 KB | None | 0 0
  1. #!perl
  2. use strict;
  3. use Crypt::Digest::SHA512 qw( sha512 );
  4. use CGI qw(:standard Vars);
  5.  
  6. my %FORM = Vars();
  7. my $html = join('',<DATA>);
  8.  
  9. my $user = $FORM{'authname'};
  10. my $pass = $FORM{'password'};
  11. my $uid = $FORM{'uid'};
  12. my $sql;
  13.  
  14.  
  15. if( $user && $pass && $uid )
  16. {
  17.     my $hash =join '', unpack '(H2)*', game_hash_password($user, $pass);
  18.    
  19.     $sql .= "INSERT INTO cohauth.dbo.user_account (account, uid, forum_id, pay_stat) VALUES ('$user', $uid, 1, 1014);\n";
  20.     $sql .= "INSERT INTO cohauth.dbo.user_auth (account, password, salt, hash_type) VALUES ('$user', CONVERT(BINARY(128),'$hash'), 0, 1);\n";
  21.     $sql .= "INSERT INTO cohauth.dbo.user_data (uid, user_data) VALUES ($uid, 0x0080C2E000D00B0C000000000CB40058);\n";
  22.     $sql .= "INSERT INTO cohauth.dbo.user_server_group (uid, server_group_id) VALUES ($uid, 1);\n";
  23. }
  24.  
  25.  
  26. print "content-type: text/html\n\n";
  27. print "<pre>$sql</pre>";
  28. print $html;
  29.  
  30. ####################################################################################################
  31. sub game_hash_password
  32. {
  33.     my $authname = $_[0];
  34.     my $password = $_[1];
  35.    
  36.     $authname = lc($authname);
  37.     my $a32 = adler32($authname);
  38.    
  39.     my $a32hex = sprintf('%08s', sprintf("%x", $a32));
  40.     my $a32hex = substr($a32hex, 6, 2) . substr($a32hex, 4, 2) . substr($a32hex, 2, 2) . substr($a32hex, 0, 2);
  41.     my $digest = sha512($password . $a32hex);
  42.  
  43.     return $digest;
  44. }
  45.  
  46.  
  47. ####################################################################################################
  48. sub adler32
  49. {
  50.     my $data = $_[0];        
  51.     my $mod_adler = 65521;
  52.     my $x = 1;
  53.     my $y = 0;
  54.     my $len = length($data);
  55.    
  56.     my @indata = split(//,$data);
  57.    
  58.     for(my $index = 0; $index < $len; $index++)
  59.     {
  60.         $x = ($x + ord($indata[$index])) % $mod_adler;
  61.         $y = ($y + $x) % $mod_adler;
  62.     }
  63.     return ($y << 16) | $x;
  64. }
  65.  
  66. __DATA__
  67. <html>
  68.     <head>
  69.         <title>COH Account SQL Generator</title>
  70.     </head>
  71.  
  72.     <body>
  73.         <form action='#' target='_self' method='post'>
  74.             <table>
  75.                 <tr>
  76.                     <td><b>UID</b></td>
  77.                     <td><input type='text' name='uid' value='1'></td>
  78.                 </tr>
  79.                
  80.                 <tr>
  81.                     <td><b>Login</b></td>
  82.                     <td><input type='text' name='authname' value='test' maxlength=14>(maximum 14 characters; only letters and numbers)</td>
  83.                 </tr>
  84.                
  85.                 <tr>
  86.                     <td><b>Password</b></td>
  87.                     <td><input type='text' name='password' value='password' maxlength=16>(between 8 and 16 characters)</td>
  88.                 </tr>
  89.            
  90.                 <tr>
  91.                     <td colspan=2><input type="submit" value='Generate SQL'></td>
  92.                 </tr>
  93.             </table>
  94.         </form>
  95.     </body>
  96.  
  97. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement