PHP: Befehl als root ausführen ohne Systemeingriff [Idee]
lima-city → Forum → Sonstiges → Spam und sonstiges Unvergütetes
befehl
bit
code
darstellen
einsetzen
haus
hinweis
jemand
methode
minimum
normaler benutzer
problem
setzen
sicherheitsrelevanten bereichen
sicherheitsrisiko
stelle
system
url
zugriff
zweifel
-
Hallo Community,
ich schreibe meinen Tipp mal an diese Stelle.
Wer zu Hause einen Homeserver einrichtet ist sicher schon über das Problem gestolpert, einen Befehl über PHP als root ausführen zu wollen.
Hierfür müssen keine Änderungen an der Konfiguration des Systems vorgenommen werden.
Man kann hierfür einfach
system("sudo $befehl<<END_SCRIPT $passwort END_SCRIPT");
ausführen.
Achtung!
Auf keinen Fall in sicherheitsrelevanten Bereichen einsetzen! Inhalte der Variablen auf jeden Fall auf Gültigkeit prüfen (z.B. END_SCRIPT untersagen)! Nur benutzen, wenn man weiß, was man tut!
Gruß
steffens
Edit: Ich habe das ursprüngliche Tutorial aus Sicherheitsgründen nach Einwänden der Community auf ein Minimum reduziert.
Beitrag zuletzt geändert: 15.5.2009 21:19:51 von steffens -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
WARUM sollte jemand SOWAS wollen ?
Es hat einen sehr rellen Grund warum unsichere Software z.B. PHP KEINEN root-Zugriff bekommt und das sollte auch so bleiben.
Im übrigen würde ich dazu raten das du zumindest einen Hinweis postest das ein derartiges Script natürlich NIEMALS auf einem öffentlich zugänglichen Webserver eingesetzt werden sollte, es sei denn man weiß sich gegen entsprechenden Missbrauch zu schützen.
IMHO gehört sowas, wenn überhaupt, auf einen nur lokal zugänglichen Server, und selbst da ist es möglich das es Probleme verursacht. Abgesehen davon kann man heutzutage als normaler Benutzer seinen Rechner runter fahren, wenn der Admin das vorgesehen hat.
Das ganze Ding ist ein Sicherheitsrisiko, und ich empfehle jedem vor der Nutzung dieses "Tutorials" genau zu prüfen ob er mit den damit aufgerissenen Sicherheitslücken leben kann und es im Zweifel einfach zu lassen.
Beitrag zuletzt geändert: 15.5.2009 16:56:28 von fatfox -
WOW was für eine Leistung, da werden dem lokalen PHP zuerst soviel Rechte gegeben, dass man überhaupt die Funktion system() aufrufen darf und dann soll man noch das Root Passwort irgendwo hinterlegen!
Sag mal bist du völlig gaga? Natürlich kann PHP auch systembefehle ausführen, wenn man PHP das Recht dazu gibt und natürlich kann man dann auch Sachen ausführen unter einem anderen Nutzerkonto wenn man das Passwort mit übermittelt!
Wenn ich die Passwörter in ein Script schreibe, dann kann ich auch gleich die Passwörter im Web veröffentlichen.
@MODs: Aus Sicherheitsgründen würde ich an eurer Stelle diesen Thread löschen!
Grüßle
Beitrag zuletzt geändert: 15.5.2009 17:31:27 von scout -
Es ist zwar nett, dass du ein Tutorial schreiben willst, aber ich muss mich fatfox anschließen. Diese Methode ist absolut keine gute Idee.
Eine sichere und viel sinnvollere Alternative ist das Setzen des Suid-Bits.
http://en.wikipedia.org/wiki/Setuid
Aber auch hier sollte man sich vorher überlegen, ob man dabei nicht doch ein großes Risiko eingeht!
Für den speziellen Fall des shutdown-Programms sollte es OK sein, wenn du das Suid-Bit setzt.
Beitrag zuletzt geändert: 15.5.2009 17:50:23 von bladehunter -
Hallo Community,
ich habe selbst noch einmal darüber nachgedacht. Keine Sicherheitslücke sollte es darstellen, wenn man das Passwort per Post-Methode über SSL-Verbindung sendet und die Eingaben zudem auf gefährlichen Code wie END_SCRIPT untersucht. Schlecht wäre es allerdings, wenn jemand tatsächlich das Beispielscript, das eigentlich nur zur Veranschaulichung dienen sollte, verwenden würde.
@scout: Ich werde den anfänglichen Beitrag auf ein Minimum reduzieren.
Gruß
steffens -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage