php naar shell

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bert Sinnema

Bert Sinnema

04/01/2006 17:26:00
Quote Anchor link
Heeft iemand een idee hoe ik met php (vanuit de browser) een shell command (linux) kan sturen, of dat dit uberhaupt mogelijk is?
 
PHP hulp

PHP hulp

29/03/2024 03:03:04
 
Mitch X

Mitch X

04/01/2006 17:27:00
Quote Anchor link
Dat kan met exec() / system() :)
exec is om programma's te starten, system is meer wat je zoekt denk ik.

Voorbeeld van php.net
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
echo '<pre>';

// Outputs all the result of shellcommand "ls", and returns
// the last output line into $last_line. Stores the return value
// of the shell command in $retval.

$last_line = system('ls', $retval);

// Printing additional info
echo '
</pre>
<hr />Last line of the output: '
. $last_line . '
<hr />Return value: '
. $retval;
?>
Gewijzigd op 04/01/2006 17:29:00 door Mitch X
 
Bert Sinnema

Bert Sinnema

04/01/2006 17:33:00
Quote Anchor link
cool...

hier kan ik wel wat mee..
ThnQ
 
Jelmer -

Jelmer -

04/01/2006 17:53:00
Quote Anchor link
Dit heb ik uit een 'hack script', ooit achter gelaten door een scriptkiddy op mijn website. Maar het laat wel mooi zien welke mogelijkheden er zijn om een commando uit te voeren:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
function ex($cfe)
{

 $res = '';
 if (!empty($cfe))
 {

  if(function_exists('exec'))
   {
    @
exec($cfe,$res);
    $res = join("\n",$res);
   }

  elseif(function_exists('shell_exec'))
   {

    $res = @shell_exec($cfe);
   }

  elseif(function_exists('system'))
   {
    @
ob_start();
    @
system($cfe);
    $res = @ob_get_contents();
    @
ob_end_clean();
   }

  elseif(function_exists('passthru'))
   {
    @
ob_start();
    @
passthru($cfe);
    $res = @ob_get_contents();
    @
ob_end_clean();
   }

  elseif(@is_resource($f = @popen($cfe,"r")))
  {

   $res = "";
   while(!@feof($f)) { $res .= @fread($f,1024); }
   @
pclose($f);
  }
 }

 return $res;
}

?>


En dan heb je ook nog backsticks. $var = `ls ./`; Nu zit in $var de uitvoer van 'ls ./'. Maakt gebruik van shell_exec().
Gewijzigd op 04/01/2006 17:54:00 door Jelmer -
 
Mitch X

Mitch X

04/01/2006 17:54:00
Quote Anchor link
Deed het wat leuks op je site? :+
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.