xwolf: SSI exec bug

Beitrag lesen

Hi,

SSI wird vom Server interpretiert, so aehnlich wie z.B. PHP, welches als Servermodul laeuft.
Damit jedoch eine Datei als SSI interpretiert wird, muss sie in der
Regel auch als solche definiert sein.

Ja, soweit ist mir die Sache auch noch klar.

Doch wie kommt der exec-Befehl aus dem Eingabeform in eine .shtml-Datei, damit er Befehl zur Ausführung kommt?

Erklaer ich unten. Du warst schon auf den richtigen Weg.

Wenn nun ein CGI-Skript ausgefuehrt wird, wird dessen Ergebnis zwar an den Server gegeben, jedoch wird dieser diese Daten nicht nochmals parsen, weil es ja schon geparst wurde entsprechend des Dokumententypes. Und zwar als CGI.

Und entsprechend würde der Server evtl. enthaltene SSI-Befehle nicht interpretieren, oder?

Genau.

Die einzige Möglichkeit über diesen Weg SSI-Befehle einzubauen dürfte folgende sein: Form mit SSI-Befehl -> CGI, CGI schreibt .shtml-Seite, CGI Redirect auf .shtml-Seite und dann die Interpretation von SSI. Doch das wäre extrem unüblich...

Genau so ist es.

Obs unueblich ist?

Leider nein.
Siehe zum Beispiel die alte Form des Boards von Matt Wright oder sehr viele Gaestebuecher. Bei diesen werden die EIntraege nicht dynamisch aus einer Datenbank generiert, sondern es wird eine HTML-Datei abgelegt.
Will dann der Betreiber ggf. ueber include virtuals irgendwelche festen Infos oder Werbebanner einbauen, macht er das vielleicht als SHTML.
Wenn dann das Gaestebuch kein HTML parst, weisst du was passiert.

Solche Skripten gibt es Haufenweise.

(Bei PHP ist das aber keineswegs sicherer. Auch dort gibt es solche
Skripten mit Tuecken und Tricks :)

Ein aktuelles Beispiel ist das eCard von der CSU/CDU (vgl: http://www.intern.de/news/3236.html, noch hier
im EInsatz:
http://www.stoiber.de/fs_pop.php?id=030101
http://www.zickensinddafuer.de/
http://www.krassgut.de/
http://www.wechselparty.de/
).
Dort ist es moeglich beliebigen HTML- und JavaScriptcode in eine Message einzugeben, die dann spaeter irgendwer mit entsprechender Unerfahrenheit lesen wird.

All diese Bugs werden unter "Cross-Site Scripting"-Bugs zusammengefasst. Wenn du in BugTraq mal danach suchst und das ganze ausdruckst, wirst du von Papiermassen erschlagen.

Ciao,
 Wolfgang