[PHP] safe_mode uit >> exec alle output opvangen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
op een linux bak van mij wil ik doormiddel van php met een aantal functies op de machine zelf gaan spelen. Ik heb namelijk een tool van ripe geinstalleerd op deze. Als ik die aanroep middels exec("asused") krijg ik vervolgens de "readme" terug van deze tool. Dit lijkt dan allemaal te werken. Vervolgens wil ik er een parameter erachter plakken waar dit alles de mist in gaat. Ik krijg de output namelijk niet terug maar schrijft dit 7 van de 10 keer weg in de error_log van Apache.

Ik ben nu al 2 dagen aan het stoeien maar wordt er helemaal gek van.
Vandaag kwam ik zelfs achter dat ik ping ook niet mag benaderen. Heel af en toe krijg ik dan onderstaand in de log te zien:
ping: icmp open socket: Operation not permitted

Allemaal leuk en aardig maar waarom krijg ik dit niet terug in PHP? Soms geeft hij geen error maar schrijft hij de output die ik graag in mijn pagina wil hebben gewoon in de error_log weg!

Ik gebruik zelf onderstaande code omdat die af en toe nog wel eens wat terug wilt geven.

exec("ping -c 2 www.google.nl", $result);
echo "<pre>";
for ($i = 0; $i < sizeof($result); $i++)
echo $result[$i]."<br>";
echo "</pre>";

passthru / system/ shell_exec heb ik ook allemaal al mee zitten stoeien maar maakt geen verschil.

Tevens ook al flink wat topics door zitten bladeren waar vele hun antwoord vonden en bij mij alles gewoon weer vrolijk in de error_log kwam.

safe_mode staat gewoon uit en kan dit zien in php_info()
als ik whoami aanroep krijg ik www te zien. Is ook de user die ik aangemaakt heb hiervoor.

Wat ik wil is alle output, ook als het een foute commando betreft, terug krijgen op de pagina waar ik de commando's aanroep middels exec().

Acties:
  • 0 Henk 'm!

  • iH8
  • Registratie: December 2001
  • Laatst online: 17-06-2024

iH8

kijk hier eens na: http://www.theworldsend.net/ping_src.php

ik heb dat script aan het werken gekregen op win en lnx, zelfs aankunnen passen voor het executen van een nmap. misschien als je deze ff met de jouwe vergelijkt dat je ziet wat je fout doet?

Aunt bunny is coming to get me!


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
iH8 schreef op dinsdag 14 december 2004 @ 13:30:
kijk hier eens na: http://www.theworldsend.net/ping_src.php

ik heb dat script aan het werken gekregen op win en lnx, zelfs aankunnen passen voor het executen van een nmap. misschien als je deze ff met de jouwe vergelijkt dat je ziet wat je fout doet?
Hmmm.. als ik de rest een beetje weg laat komt het hierop neer
system ("ping -c$count -w$count $host");
Als ik deze zelf invul, krijg ik nog helemaal niks aan output te zien :( zelfs niet in de logfile.
ls -l laat hij b.v. wel weer zien maar als ik mkdir "mapnaam" uitvoer laat hij niks zien maar schrijft vervolgens wel de melding weg dat ik geen rechten hiertoe heb.

Vind het dus vreemd dat hij het ene wel output maar het andere niet.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
och och .. schaam
ik krijg nu eindelijk alle output terug :D ook de errors!

exec("ping -c2 www.google.nl 2>&1", $test);

for ($i =0; $i < sizeof($test); $i++)
echo $test[$i];

door "2>&1" toe te voegen, nu heb ik dus alleen nog geen rechten om ping uit te voeren.
Ik ben verder nogal n00b met linux. Hoe kan ik dit oplossen? User www moet b.v. ping uit kunnen voeren.

Acties:
  • 0 Henk 'm!

  • iH8
  • Registratie: December 2001
  • Laatst online: 17-06-2024

iH8

Verwijderd schreef op dinsdag 14 december 2004 @ 13:54:
och och .. schaam
ik krijg nu eindelijk alle output terug :D ook de errors!

exec("ping -c2 www.google.nl 2>&1", $test);

for ($i =0; $i < sizeof($test); $i++)
echo $test[$i];

door "2>&1" toe te voegen, nu heb ik dus alleen nog geen rechten om ping uit te voeren.
Ik ben verder nogal n00b met linux. Hoe kan ik dit oplossen? User www moet b.v. ping uit kunnen voeren.
durf ik zo 1 2 3 niet met zekerheid te zeggen. is hier ook niet echt de plek voor die vraag. daarmee gaan zitten kloten als n00b kan ik je van harte afraden. mits het een testcase is en je bereid bent om de beveiligingsrisico's voor lief te nemen. je moet volgens mij die dir waar ping staat leesbaar maken voor die user en zorgen dat ie read en execute rights heeft op die file. volgens mij staat ping normaliter in een dir waar dingen in staan waarvan je niet wil dat ze ge-execute worden. dus als iemand een codeinject doet bij een systeem waar safemode uitstaat en met read rights op die belangrijke dir is imo verdomde gevaarlijk. misschien moet je ping wegkopieeren ofzo. ik zou eerst wat bij gaan lezen over die phpsystemfunctie alvorens gekke dingen te doen.

Aunt bunny is coming to get me!