staging.inyokaproject.org

Von PHP aus Shell-Script SICHER ausführen!

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

wowatsch

Anmeldungsdatum:
19. September 2017

Beiträge: 3

Guten Tag, gibt es die Möglichkeit über einer Weboberfläche ein Script oder Linux-Befehl auszuführen ohne die standart Verwendung von PHP Funktionen die ja alle als Sicherheitslücke bezeichnet werden? Vielleicht mit Python oder verschiedenen Libraries?

Danke schon mal.

Doc_Symbiosis

Avatar von Doc_Symbiosis

Anmeldungsdatum:
11. Oktober 2006

Beiträge: 4453

Wenn Du das per cgi machst, kannst Du ja einfach direkt Shell-Skripte ausführen, z.B. ein Skript mit folgendem Inhalt:

#!/bin/bash
echo -e "Content-Type: text/plain\r\n\r\n";

echo Hello World

apt-ghetto

Anmeldungsdatum:
3. Juni 2014

Beiträge: 2943

Inwiefern wird durch dein Vorhaben die Sicherheit verbessert?

wowatsch

(Themenstarter)

Anmeldungsdatum:
19. September 2017

Beiträge: 3

Die meisten im Internet schreiben das man Shell Befehle über eine Weboberfläche mit PHP - exec() und system() realisieren kann. Dies ist aber eine Sicherheitslücke da man dem www-data User mehr Berechtigung erteilen muss. Das mit CGI hatte ich während der suche ca. nur einmal gefunden. Aber das wird wohl das richtige sein.

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wenn es sich um einen einzigen Befehl handelt (am besten ohne Parameter), könntest Du genau diesen einen Befehl mit einem sudoers-Eintrag dem www-data- User freigeben.

Dann wären keine zusätzlichen Rechte aufgemacht, und vor allem Code-Injection sicher ausgeschlossen.
(Darum geht es ja in erster Linie !)

LG,

track

Dakuan

Avatar von Dakuan

Anmeldungsdatum:
2. November 2004

Beiträge: 6532

Ich bin jetzt nicht so der große Sicherheitsexperte, aber soweit ich mich erinnere besteht die mögliche Sicherheitslücke hauptsächlich darin, das oft Parameter üngeprüft weiter gereicht werden.

Da macht es dann auch keinen Unterschied, ob der entsprechende Befehl über CGI oder von einem PHP Script gestartet wird. Wobei auch PHP als CGI oder Fast-CGI laufen könnte. Der User ist dann immer www-data.

Es geht hauptsächlich darum, ob ein Anwender die Möglichkeit hat, irgendwelche Parameter ungeprüft an das Script weiter zu geben.

Mit CGI hat das wenig zu tun.

Das mit CGI hatte ich während der suche ca. nur einmal gefunden.

Ich denke CGI wird nur noch selten eingesetzt, da es den Sever veranlasst für jede Anfrage einen neuen Prozess zu starten. Aber wenig bekannt ist, das man darüber auch WEB Anwendungen nur mit Shell Scripten bauen kann. Ist ganz lustig, ändert aber nichts an der Sicherheit.

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

SSH benutzen! Punkt! Fertig! Aus!

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4735

@TheDarkRose: Wie hilft SSH dabei etwas über eine Weboberfläche auszuführen? Und wie ist das sicherer jemandem SSH-Zugangsdaten in die Hand zu geben mit denen er sonst was machen kann, statt eine Weboberfläche zu haben mit der genau das eine Programm ausgeführt werden kann, das man nach ausführbar haben möchte? Von der Benutzerfreundlichkeit mal ganz abgesehen. Vergleiche: „Rufe Webseite xy auf und klicke auf den Button“ mit „Installiere Dir Putty auf Deinem Windows, konfiguriere einen SSH-Zugang mit folgenden Zugangsdaten, stelle eine Verbindung her, führe folgendes auf der Kommandozeile aus, …“.

TheDarkRose

Avatar von TheDarkRose

Anmeldungsdatum:
28. Juli 2010

Beiträge: 3459

Naja, der Thread klingt derzeit eher nach einer Webshell als wie nur einen bestimmten Befehl auszuführen...

Antworten |