@RFZ: Ich hab gestern mal kurz eine alte, stillgelegte 7170 von mir wieder in Betrieb genommen (mit verwundbarer FW und Offline natürlich) um das ganze mal zu testen und genauer anzuschauen.
Erstmal zur grunsätzlichen Ausführung des angehängten Befehls: Man übergibt an die Variable "var:lang" einen String. Dieser String wird in der verwundbaren FW Eins zu Eins an einen Shell-Aufruf des ctrlmgr (die genaue Befehlszeile weiß ich auswendig leider nicht mehr) angehängt bzw. als Parameter übergeben. Deswegen können wir auch mit dem & (bei der Variable als URL-Encoded %26) von der eigentlichen Parameterübergabe "ausbrechen" und unseren eigenen Befehl in der shell ausführen. Mit root-rechten natürlich.
Und nun zur Ausgabe:
Die Ausgabe des Befehls wird im HTTP-Antwort-Stream untergebracht. Bei meinen Tests gestern meist direkt nach dem "HTTP 200 OK", einmal ist es aber auch ein bisschen weiter nach unten gerutscht. Aber: Die Ausgabe befand sich direkt im Header und wurde deswegen meist vom Browser "verschluckt". Habe mir das Ganze dann über Wireshark angesehen weil es mir zu umständlich war die Aufrufe über Telnet auf Port 80 durchzuführen.
Interessant ist auch noch zu wissen: im Anschluss folgt die reguläre Seite, die entweder eine Weiterleitung zur Startseite oder nur ein IFrame ist, das weiß ich auswendig leider auch nicht mehr sicher.
Theoretisch sollte es reichen, wenn man mit ...var:lang=%26echo%20-e%20%22%5Cr%5Cn%5Cr%5Cn%22%26 (im Klartext: &echo -e "\r\n\r\n"&) anfängt, dann sollten 2 Leerzeilen eingefügt werden, dann denkt der Browser der Header ist zu ende und sollte eine jede Ausgabe direkt anzeigen.
Man darf aber weiterhin nicht vergessen, dass die eigentliche Seite immer noch unten dran hängt. Ich habe das gestern in Firefox einfach so umgangen, dass ich meine "URL" mit "view-source:" angefangen habe. Somit wurde mir immer direkt nur der Quelltext angezeigt.
Erstmal zur grunsätzlichen Ausführung des angehängten Befehls: Man übergibt an die Variable "var:lang" einen String. Dieser String wird in der verwundbaren FW Eins zu Eins an einen Shell-Aufruf des ctrlmgr (die genaue Befehlszeile weiß ich auswendig leider nicht mehr) angehängt bzw. als Parameter übergeben. Deswegen können wir auch mit dem & (bei der Variable als URL-Encoded %26) von der eigentlichen Parameterübergabe "ausbrechen" und unseren eigenen Befehl in der shell ausführen. Mit root-rechten natürlich.
Und nun zur Ausgabe:
Die Ausgabe des Befehls wird im HTTP-Antwort-Stream untergebracht. Bei meinen Tests gestern meist direkt nach dem "HTTP 200 OK", einmal ist es aber auch ein bisschen weiter nach unten gerutscht. Aber: Die Ausgabe befand sich direkt im Header und wurde deswegen meist vom Browser "verschluckt". Habe mir das Ganze dann über Wireshark angesehen weil es mir zu umständlich war die Aufrufe über Telnet auf Port 80 durchzuführen.
Interessant ist auch noch zu wissen: im Anschluss folgt die reguläre Seite, die entweder eine Weiterleitung zur Startseite oder nur ein IFrame ist, das weiß ich auswendig leider auch nicht mehr sicher.
Theoretisch sollte es reichen, wenn man mit ...var:lang=%26echo%20-e%20%22%5Cr%5Cn%5Cr%5Cn%22%26 (im Klartext: &echo -e "\r\n\r\n"&) anfängt, dann sollten 2 Leerzeilen eingefügt werden, dann denkt der Browser der Header ist zu ende und sollte eine jede Ausgabe direkt anzeigen.
Man darf aber weiterhin nicht vergessen, dass die eigentliche Seite immer noch unten dran hängt. Ich habe das gestern in Firefox einfach so umgangen, dass ich meine "URL" mit "view-source:" angefangen habe. Somit wurde mir immer direkt nur der Quelltext angezeigt.