Sicherheitslücke beim Hochladen beliebiger PHP-Dateien
Dec 02, 2016 am 09:56 AMDetails zur Sicherheitslücke:
Diese Sicherheitslücke besteht in einer sehr häufig verwendeten Funktion in PHP: move_uploaded_files. Entwickler verwenden immer diese Funktion, um hochgeladene Dateien zu verschieben. Diese Funktion prüft, ob es sich bei der hochgeladenen Datei um eine legale Datei handelt (unabhängig davon, ob sie über den HTTP-Post-Mechanismus hochgeladen wird). Wenn es sich um eine legale Datei handelt, muss sie im angegebenen Verzeichnis abgelegt werden.
Beispiel:
move_uploaded_file ( string $filename , string $destination ) Das Problem hierbei ist, dass Nullzeichen in den Dateinamen eingefügt werden können (diese Sicherheitslücke wurde schon oft behoben, z CVE-2006 -7243) können Angreifer durch das Einfügen von Nullzeichen beliebige Dateien hochladen, was zu Sicherheitslücken bei der Remotecodeausführung usw. führt.
Ich verwende DVWA, um dieses Beispiel zu demonstrieren. Die höchste Frage in DVWA ist aus verschiedenen Gründen nicht einfach zu bestehen. Sie soll Entwicklern sagen, wie sie eine sicherere Datei-Upload-Komponente entwickeln können. Schauen wir uns dieses Beispiel an:
Code-Snippet:
$uploaded_name = $_FILES['uploaded']['name'];
$uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1); $uploaded_size = $_FILES['uploaded']['size'];
if (($uploaded_ext == "jpg" || $uploaded_ext == "JPG " || $uploaded_ext == "jpeg" || $uploaded_ext == "JPEG") && ($uploaded_size < 100000)){ if(!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path )) {
$html .= '';
$html .= 'Ihr Bild wurde nicht hochgeladen.';
$html .= '';🎜>else {
$html .= $target_path . ' erfolgreich hochgeladen!';
.
.

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein
