CGI kann durchaus gefährlich sein
Security
Mich begeistert die Möglichkeit mit CGI-Skripts Code auf dem Web-Server auszuführen. Beim Nachlesen im Internet bin ich allerdings auf die Gefahr, die von den CGI-Skripten ausgehen kann, aufmerksam geworden.
Wenn so ein Skript zum Beispiel von einem html-Formular aus gefüttert wird, und die übergebenen Parameter auswertet, dann kann ein Angreifer die volle Kontrolle über das Web-Server-System erhalten.
Beispiel: Man hat ein html-Formular, das mit der get-Methode Parameter an das CGI-Skript übergibt. Wenn der Angreifer dann einfach die URL mit beliebigem Code verlängert, dann könnte es (je nach Art der Programmierung) dazu kommen, dass der Server Aufgaben durchführt, die gar nicht vorgesehen waren.
eval $(echo $QUERY_STRING | sed ’s/%20/ /’) | while read; do echo $REPLY “< / br>“; done
Das wäre ein hübsches Beispiel dafür (ok, es ist sehr konstruiert, aber ok.) Wenn man an die Internet-URL ein ?ls -l anhängt, dann macht der Browser daraus: ?ls%20-l . Das Skript filtert das %20 wieder raus, und generiert ein Leerzeichen daraus. Anschließend wertet eval diesen Befehl aus. Die while-Schleife erzeugt die html-Zeilenumbrüche.
Der Angreifer könnte hier genauso gut weitere Befehle senden. Also, ich für meine Person werde in den CGI-Scripts ab sofort genau überprüfen, ob die gesendeten Parameter zulässig sind!

