Die Funktion zum Hochladen von Dateien ist eine unverzichtbare Funktion für die meisten WEB-Anwendungen. Auf Websites können Benutzer ihre eigenen Avatare hochladen, auf einigen Websites sozialer Netzwerke können Benutzer Fotos hochladen, und auf einigen Service-Websites müssen Benutzer dies tun Laden Sie elektronische Dateien mit unterstützenden Materialien hoch. Auf E-Commerce-Websites können Benutzer Bilder hochladen, um Produktbedingungen usw. anzuzeigen. Ohne angemessene Sicherheitsmaßnahmen kann selbst eine scheinbar unbedeutende Datei-Upload-Funktion extrem hohen Sicherheitsrisiken ausgesetzt sein.
Wenn ein Benutzer eine Datei im Datei-Upload-Funktionsmodul hochlädt und die WEB-Anwendung die Sicherheit der Datei während des Datei-Upload-Vorgangs nicht effektiv überprüft, kann der Angreifer angreifen Der Server wird durch das Hochladen schädlicher Dateien wie WEBshell beschädigt. In diesem Fall wird angenommen, dass das System eine Sicherheitslücke beim Hochladen von Dateien aufweist.
Die häufigste Methode zur Sicherheitsanfälligkeit beim Hochladen von Dateien ist das Hochladen einer Website-Trojaner-Datei (Webshell). Je nach Entwicklungssprache wird sie in WEBSHELL unterteilt ASP-Trojaner und PHP-Trojaner, JSP-Trojaner usw. Diese Art von Trojanern nutzt die Funktionen der Systembefehlsausführung, des Lesens und Schreibens von Dateien in Skriptsprachen. Nach dem Hochladen auf den Server und der Analyse durch die Skript-Engine kann der Angreifer den Server kontrollieren .
Webshell-Dateien sind in große Pferde und kleine Pferde (Ein-Satz-Trojaner), Bildpferde usw. unterteilt.
Damas: Die Funktion ist relativ gut und kann mit dem Browser verwendet werden. Die Verschleierung ist normalerweise groß ist relativ schwach, die Codemenge ist groß und Funktionen müssen normalerweise durch Verschlüsselung und andere Methoden verborgen werden.
Xiao Ma: Die Funktion ist einfach und muss mit dem Client verwendet werden. Die Codegröße ist relativ stark und es ist einfach, Funktionen durch Verformung und Bypass-Filterung zu verbergen Das Messerwerkzeug.
Picture Horse: Wenn eine Website das Hochladen auf bildbezogene Formate einschränkt, können Angreifer die Einschränkung nicht umgehen und versuchen, Picture Horses zu verwenden, um Webshell-Vorgänge zu implementieren.
In einem Satz ähnelt der Trojaner , und die Trojaner-Datei wird über den Server hochgeladen Datei-Upload-Modul. Der Parameter v in $_POST['v'] ist der Parameter, den wir verwenden können, um die Anweisung, die wir ausführen möchten, über den Parameter v an den Server zu übergeben oder das cknife-Tool zum Betreiben des Zielservers zu verwenden.
(1) Das Upload-Format dieser Webseite ist eingeschränkt und muss den Formaten jpg, jpeg, JPG, JPEG entsprechen, daher wird das Originalformat in das 1.jpg-Format geändert (serverseitige Überprüfung)
Öffnen Sie die Burp-Suite-Software, um das Datenpaket abzufangen, und ändern Sie den Dateinamen in 1.php, damit das PHP-Skript ausgeführt werden kann. Andernfalls kann die Datei mit dem JPG-Suffix zwar hochgeladen werden, sie kann jedoch nicht ausgeführt werden.
Definieren Sie v=phpinfo() im Hackbar-Plugin; Sie können viele Informationen über den aktuellen Status von PHP anzeigen
(2) Diese Seite begrenzt das Upload-Format ( MIME) und die Datei muss das Format in JPEG oder PNG ändern (serverseitige Überprüfung). Verwenden Sie das Hackbar-Tool, um den Parameter v=phoinfo() zu definieren; PHP-Statusinformationen anzeigen
(3) Diese Seite filtert das Dateisuffix und akzeptiert keine PHP-Typdateien (serverseitige Überprüfung)
Öffnen Sie die Burp Suite-Software, um die Informationen abzufangen und die Datei zu kopieren. Ändern Sie den Namen in 1.PHP, um die Identifizierung des Webservers zu umgehen.Verwenden Sie Hackbar, um v=system (ipconfig) zu definieren.
(4) Verwenden Sie Truncation, um das JPG zu kürzen. Dieser Satz ist etwas verwirrend. Die richtige Schreibweise sollte sein: 1. Sicherheitslücke beim Hochladen von Dateien, bei der „%00“ zum Abschneiden des Dateinamens verwendet wird. 2. Wenn Sie „%00“ verwenden, können Sie es mit „Strg+Umschalt+U“ kompilieren.
1.php%00.jpg, %00 verwenden Sie Strg+Umschalt+U zum Kompilieren
Verwenden Sie das Hackbar-Tool, um den Parameter v=phoinfo() zu definieren; überprüfen Sie die PHP-Statusinformationen (5) Auf dieser Webseite können nur Bilder hochgeladen werden und das Ändern des Suffixnamens ist ungültig #🎜 ?? Verwenden Sie das Bildpferd, um Webshell-Operationen auszuführen
Die Dateitypen, die auf dieser Seite hochgeladen werden dürfen, umfassen JPG, JPEG, PNG, GIF und 7z. Sie können die Methode zum Identifizieren der Erweiterung von hinten nach vorne verwenden, wenn Apache den Suffixnamen nicht erkennen kann, und 1.jpg durch Rülpsen in 1.php.7z ändern, wodurch eine komprimierte Datei erstellt wird.
Erfassen Sie das Paket mit der Burp-Software und ändern Sie 1.jpg mit Burp in 1.php.7z. Dadurch wird es komprimiert Datei .Verwenden Sie das Hackbar-Tool, um den Parameter v=phoinfo() zu definieren; PHP-Statusinformationen anzeigen#🎜 🎜 #
Sicherheitslücken beim Hochladen von Dateien sind in der Web-Sicherheit relativ häufig und schädlich: Sie können beispielsweise den Umfang der Dateisuffix-Blacklist verstärken; die temporären Änderungen Verzeichnis und Speicherverzeichnis der hochgeladenen Datei erlauben keine Ausführungsberechtigungen usw.
Das obige ist der detaillierte Inhalt vonBeispielanalyse von Schwachstellen beim Hochladen von Webdateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!