Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]630[/thread]

Script läuft nicht bei Anstoß von einer Webseite



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
djcreature
 2005-12-20 14:48
#6336 #6336
User since
2005-12-20
7 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo!

Ich habe folgendes Problem:

Ich habe mir ein kleines Script gebaut das mir ein Programm ausführt.

Das Script schaut so aus:

!/usr/bin/perl -w
$nessuslog = "testxxx.html";
$cmd = "nessus -T html -qx(..Optionen) nessus_logs/$nessuslog";
system($cmd);

Führe ich es direkt von der Kommandozeile aus ( ./test.pl ) läuft es ohne Probleme...aber wenn ich es aus einem Browser (HTML/PHP-Script) über einen Klick auf die "OK"-Schaltfläche, hinter der sich der Befehl
system("/opt/lampp/htdocs/attacker/testn.pl

befindet, läuft es durch, stößt aber das Nessus-Script nicht an.
Wieso nicht??

Danke schonmal für eure Hilfe!

Benni
esskar
 2005-12-20 15:14
#6337 #6337
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wie, wo und warum benutzt du an der stelle system?
Ruf es doch ganz normal als link auf
djcreature
 2005-12-20 16:15
#6338 #6338
User since
2005-12-20
7 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wie meinst du das, als Link aufrufen?

Gut, das Script macht vor- und nachher noch ein paar andere Sachen...
z.b. wird davor, ebenfalls über system(), nmap ausgeführt, und DAS funktioniert ohne Probleme..nur der o.g. Befehl will nicht...!
murphy
 2005-12-20 16:27
#6339 #6339
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
[quote=djcreature,20.12.2005, 13:48][...] aber wenn ich es aus einem Browser (HTML/PHP-Script) über einen Klick auf die "OK"-Schaltfläche, hinter der sich der Befehl
system("/opt/lampp/htdocs/attacker/testn.pl

befindet, läuft es durch, stößt aber das Nessus-Script nicht an. [...][/quote]
Ich verstehe diesen Teil deiner Frage nicht. Versuchst du, das Skript als CGI auszuführen, versuchst du es mittels Javascript Funktionen zu starten oder versuchst du vielleicht es aus einem PHP Skript heraus zu starten?

Trotz meines nicht vollständigen Verständnisses der Fragestellung legt deine Aussage, dass das Ausführen eines anderen Programmes mit der selben Methode problemlos funktioniere, nahe, dass es sich um ein Problem mit falsch gesetzten Pfaden oder anderen Umgebungsvariablen handelt. Versuche einmal, in der Variable $cmd "nessus" durch den vollen Pfad zu diesem Programm zu ersetzen.
When C++ is your hammer, every problem looks like your thumb.
esskar
 2005-12-20 16:32
#6340 #6340
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
oder bringt vielleicht schon ein
Code: (dl )
system("perl /opt/lampp/htdocs/attacker/testn.pl")


etwas ?
djcreature
 2005-12-20 16:33
#6341 #6341
User since
2005-12-20
7 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=murphy,20.12.2005, 15:27]Ich verstehe diesen Teil deiner Frage nicht. Versuchst du, das Skript als CGI auszuführen, versuchst du es mittels Javascript Funktionen zu starten oder versuchst du vielleicht es aus einem PHP Skript heraus zu starten?

Trotz meines nicht vollständigen Verständnisses der Fragestellung legt deine Aussage, dass das Ausführen eines anderen Programmes mit der selben Methode problemlos funktioniere, nahe, dass es sich um ein Problem mit falsch gesetzten Pfaden oder anderen Umgebungsvariablen handelt. Versuche einmal, in der Variable $cmd "nessus" durch den vollen Pfad zu diesem Programm zu ersetzen.[/quote]
Ich habe eine normale Webseite, programmiert mit normalen PHP- und HTML-Befehlen...nix Java oder sowas.
Und in dem Quellcode der Seite rufe ich eben das Perl-Script über den Befehl
system("/opt/lampp/htdocs/attacker/testn.pl");
auf. Klärt mich auf wenn ich mich täusche, aber meines Wissens nach ist das das was du als "aus einem PHP Skript heraus" bezeichnest.
Das mit den vollständigen Pfaden sollte egal sein, da sich Nessus von allen Verzeichnissen aus starten lassen sollte. Trotzdem werd ich es mal versuchen, danke dir schonmal!
murphy
 2005-12-20 16:57
#6342 #6342
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Jep, das ist das, was ich unter "aus einem PHP Skript heraus" verstehe.

Oftmals ist das mit den Pfaden gar nicht egal, weil die PATH Variable in deiner interaktiven Shell, in der du 'nessus' vielleicht von überall starten kannst, ganz anders gesetzt sein kann, als in dem PHP Skript, das dein Webserver ausführt, so dass du das Programm dort nicht mehr von überall aus starten kannst.

Aus Sicherheitsgründen werden Skripten in manchen Situationen zum Beispiel mit leerer PATH Variable gestartet, so dass man für jeden Programmaufruf und sei er auch so banal wie 'cat' einen vollen Pfad angeben muss.

Alternativ kannst du natürlich auch in deinem PHP Skript die PATH Umgebungsvariable auf einen "vernünftigen" Wert setzen.
When C++ is your hammer, every problem looks like your thumb.
djcreature
 2005-12-21 09:17
#6343 #6343
User since
2005-12-20
7 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=esskar,20.12.2005, 15:32]oder bringt vielleicht schon ein
Code: (dl )
system("perl /opt/lampp/htdocs/attacker/testn.pl")


etwas ?[/quote]
Naja, das Perl-Script selbst wird ja erfolgreich angestoßen...nur wenn ich eben dieses Perl-Script über eine Webseite aufrufe, ruft DAS wiederrum NICHT das Nessus-Script auf.
Wenn ich das Perl-Script normal von der Commandline starte, läuft es problemlos durch.
djcreature
 2005-12-21 09:18
#6344 #6344
User since
2005-12-20
7 Artikel
BenutzerIn
[Homepage] [default_avatar]
[quote=murphy,20.12.2005, 15:57]Jep, das ist das, was ich unter "aus einem PHP Skript heraus" verstehe.

Oftmals ist das mit den Pfaden gar nicht egal, weil die PATH Variable in deiner interaktiven Shell, in der du 'nessus' vielleicht von überall starten kannst, ganz anders gesetzt sein kann, als in dem PHP Skript, das dein Webserver ausführt, so dass du das Programm dort nicht mehr von überall aus starten kannst.

Aus Sicherheitsgründen werden Skripten in manchen Situationen zum Beispiel mit leerer PATH Variable gestartet, so dass man für jeden Programmaufruf und sei er auch so banal wie 'cat' einen vollen Pfad angeben muss.

Alternativ kannst du natürlich auch in deinem PHP Skript die PATH Umgebungsvariable auf einen "vernünftigen" Wert setzen.[/quote]
Okay, auch nach Einfügen des kompletten Pfades ( /usr/local/bin/nessus ....) gehts nicht...*seufz*
murphy
 2005-12-21 10:04
#6345 #6345
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Führe mal in einer Shell den Befehl
Code: (dl )
env -i perl /opt/lampp/htdocs/attacker/testn.pl

aus und schaue nach, ob bzw. was für eine Fehlermeldung erscheint oder ob das Skript dann trotzdem funktioniert.

Falls es trotzdem funktioniert, wissen wir jedenfalls, dass das Problem vermutlich nicht an irgendwelchen Umgebungsvariablen liegt.
When C++ is your hammer, every problem looks like your thumb.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2005-12-20 14:48.