Guest User

Untitled

a guest
Jan 31st, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.39 KB | None | 0 0
  1. <?php
  2. $FAKE_DATABASE = array (
  3.     "rob" => "60df0ab1a78fd0d95a4cfa4b0854931b", // smashthestate
  4.     "admin" => "8e11a50ef762f924d7af9995889873e4",
  5. );
  6. $page = $_GET['page'];
  7.  
  8. switch ($page) {
  9.     case "login":
  10.         echo "trying to log in";
  11.         $user = $_POST['user'];
  12.         $pass = $_POST['pass'];
  13.         if ($FAKE_DATABASE[$user] === md5($pass)) {
  14.             session_start();
  15.             session_regenerate_id(True);
  16.             $_SESSION['user'] = $user;
  17.             header("Location: ?page=upload");
  18.             die();
  19.         }
  20.         else {
  21.             header("Location: ?");
  22.         }
  23.         break;
  24.     case "admin_login_help":
  25.         session_start();
  26.         if(!isset($_SESSION['login_code']) ){
  27.             $_SESSION['login_code'] = bin2hex(openssl_random_pseudo_bytes(18));
  28.             echo "A login code has been emailed to the administrator. Once you have recieved it, please click <a href='?page=code_submit'>here</a>\n";
  29.         }
  30.         else {
  31.             echo "There is already an active login code for this session";
  32.         }
  33.         break;
  34.     case "code_submit":
  35.         session_start();
  36.         $code = $_POST['code'];
  37.         if (isset($code) && isset($_SESSION['login_code'])) {
  38.             if ($code === $_SESSION['login_code'] ){
  39.                 echo "Flag: ";
  40.                 passthru("sudo /bin/cat /var/www/html/flag");
  41.             }
  42.             else {
  43.                 echo "Invalid code";
  44.             }
  45.         }
  46.         else {
  47.             echo "<html><form action='?page=code_submit' method='POST'>Please input the login code:<input name='code'/><input type='submit' value='submit'/></form>";
  48.         }
  49.         break;
  50.     case "upload":
  51.         session_start();
  52.         if (!isset($_SESSION['user'])) {
  53.             header("Location: ?");
  54.         }
  55.         else {
  56.             echo "Welcome ".$_SESSION['user'] ." <button onclick='document.cookie=\"PHPSESSID=deleted\";location=\"?\"'>Logout</button><br/><br/>";
  57.             echo "Use this form to verify zip integrity<br/><form action='?page=process_upload' method='post' enctype='multipart/form-data'><input type='file' name='zipfile'/><br/><br/><input type='submit' name='submit' value='Upload'/></form>";
  58.         }
  59.         break;
  60.     case "process_upload":
  61.         session_start();
  62.         if (isset($_SESSION['user']) && $_FILES['zipfile']['name']) {
  63.  
  64.  
  65.             if ($_FILES['zipfile']['size'] > 16000) {
  66.                 echo "File above max size of 10kb";
  67.                 echo "<br/><a href='?page=upload'>back</a>";
  68.                 break;
  69.             }
  70.             $tmp_file = '/var/www/html/tmp/upload_'.session_id();
  71.  
  72.             # ZipArchive may not be available
  73.            # $zip = new ZipArchive;
  74.            # $zip->open($_FILES['zipfile']['name']);
  75.            # $zip->extractTo($tmp_file);
  76.            exec('unzip -o '.$_FILES['zipfile']['tmp_name']. ' -d '.$tmp_file);
  77.             echo "Zip contents: <br/>";
  78.             passthru("cat $tmp_file/* 2>&1");
  79.             exec("rm -rf $tmp_file");
  80.             echo "<br/><br/><a href='?page=upload'>back</a>";
  81.         }
  82.         break;
  83.     default:
  84.         echo "<html><form action='?page=login' method='POST'>Username: <input name='user'/><br/>Password: <input type='password' name='pass'/><br/><input type='submit' value='Log in'/></form><a href='?page=admin_login_help'>Admin login help</a></html>";
  85.         break;
  86. }
  87.  
  88. ?>
Add Comment
Please, Sign In to add comment