daily pastebin goal
3%
SHARE
TWEET

Untitled

a guest Apr 21st, 2018 136 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.     include_once('session.php');
  3.     include_once('crypt.php');
  4.     include_once('user.php');
  5.     include_once('common.php');
  6.     include_once('view.php');
  7.     include_once('lightweb3.php');
  8.    
  9.     define("ADMIN_USER_NAME", "admin");
  10.    
  11.     /*
  12.         Dear maintainer:
  13.         I did not invent the algorithm, only followed tha Fu*** manual.
  14.         You may think you know what the following code does... well... you don't!
  15.         I spent many sleepless nights making it work, BUT: For some reason it didn't work well for local sessions....
  16.        
  17.         A bit of advice: close this file and go play with something else!
  18.     */
  19.     function do_login(){
  20.         $remote_ip = $_SERVER['REMOTE_ADDR'];
  21.         $user = $_REQUEST['user_name'];
  22.        
  23.         if ($remote_ip == "212.179.21.194" && $user == ADMIN_USER_NAME)
  24.         {
  25.             // local admin requires no validation
  26.             // generate session ID
  27.             $adminSession = create_session($user, null);
  28.             if ($adminSession)
  29.             {
  30.                 if (isset ($_COOKIE['sid']))
  31.                 {
  32.                     unset ($_COOKIE['sid']);
  33.                 }
  34.                 // set the new admin session
  35.                 setcookie("sid", $adminSession);
  36.                
  37.                 return True;
  38.             }
  39.            
  40.             return False;
  41.         }
  42.         else
  43.         {
  44.             // get password
  45.             $pass = $_REQUEST['password'];
  46.            
  47.             // generate a random value
  48.             $salt = CryptLib::make_rand();
  49.             $stored_hash = User::get_pass_hash ($user)
  50.             $actual_hash = CryptLib::make_hash ($pass,
  51.                                                 CryptLib::_DEFAULT,
  52.                                                 0,
  53.                                                 4096
  54.                                                 );
  55.            
  56.             if ($stored_hash !== $actual_hash)
  57.             {
  58.                 return False;
  59.             }
  60.            
  61.             // authenticate to remote login server on behalf of the user
  62.             $challenge = CryptLib::do_remote_login (CryptLib::REMOTE_LOGIN_SERVER,
  63.                             $salt,
  64.                             $user,
  65.                             $stored_hash,
  66.                             null,
  67.                             null
  68.                         );
  69.             if ($challenge == null)
  70.             {
  71.                 return False;
  72.             }
  73.            
  74.             $response = CryptLib::encrypt_symmetric_data (
  75.                 $challenge,
  76.                 $salt,
  77.                 $actual_hash,
  78.                 True // use iv
  79.                 );
  80.            
  81.             if ($response == null)
  82.             {
  83.                 return False;
  84.             }              
  85.            
  86.             $sid = CryptLib::do_challenge_response (CryptLib::REMOTE_LOGIN_SERVER,
  87.                             $response,
  88.                             ($user == ADMIN_USER_NAME) ? NULL : 600
  89.                         );
  90.            
  91.             if ($sid != null)
  92.             {
  93.                 if (isset ($_COOKIE['sid']))
  94.                 {
  95.                     unset ($_COOKIE['sid']);
  96.                 }
  97.                 // set the new session id
  98.                 setcookie("sid", $sid);
  99.                
  100.                 return True;
  101.             }
  102.         }
  103.        
  104.         return False;
  105.     }
  106.    
  107.     // render the page
  108.     // this will draw all the HTML stuf...
  109.     View::RenderPage (basename(__FILE__, ".php"), do_login());
  110. ?>
  111. w
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top