![]() |
PHP Script zum Dateihash berechnen
Ich brauchte jetzt mal schnell eine Anwendung, die Dateihashes berechent. Also hab eich mir ein PHP Script geschrieben:
Code:
Kann mir da einer irgendwie Code oder Dateien auf meinen Webspace einschmuggeln?
<?php
/* Projekt : - Date : 2012-05-23 Author : Michael Puff, http://michael-puff.de MD5, SHA1 und CRC32 Dateihashes */ ini_set('track_errors', 1); $action = $_GET['action']; $filename = $_FILES['file']; $dir = $_SERVER["DOCUMENT_ROOT"]."/Programmierung/DaddysLittleHelpers/"; function showForm() { echo "<hmtl>\n"; echo "<body>\n"; echo "<strong>MD5 und SHA1 Dateihashes</strong><br><br>\n"; echo "<form enctype=\"multipart/form-data\" action=\"FileHash.php?action=hash\" method=\"post\">\n"; echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"3000000\">\n"; echo "<input name=\"file\" type=\"file\" size=150><br>\n"; echo "<input type=\"submit\" value=\"Hashes erzeugen\">\n"; echo "</form>\n"; echo "</body>\n"; echo "</html>\n"; } function upload($dir, $file) { global $errorMsg; $ret = move_uploaded_file($file['tmp_name'], $dir.$file['name']); $errorMsg = $php_errormsg; return $ret; } echo "<a href=\".\">Zurück</a><br><br>\n"; if (empty($action)) { showForm(); } else { if (upload($dir, $filename)) { echo "<strong>Dateiname: ".$filename['name']."</strong><br>\n"; echo "<pre>MD5 : ".md5_file($dir.$filename['name'])."\n"; echo "SHA1: ".sha1_file($dir.$filename['name'])."</pre>\n"; if (!unlink($dir.$filename['name'])) { echo "Datei ".$filename['name']." konnte nicht gelöscht werden.\n"; } } else { echo "Es ist ein Fehler beim Hochladen der Datei <i>".$filename['name']."</i> aufgetreten.<br>".$errorMsg; } } ?> |
AW: PHP Script zum Dateihash berechnen
Es könnte definitiv nicht schaden, den Dateinamen zu escapen, auch wenn mir keine konkreter Angriff einfallen würde.
IMHO kann man mit dem Skript beliebige Dateien in
Code:
löschen (siehe
$_SERVER["DOCUMENT_ROOT"]."/Programmierung/DaddysLittleHelpers/"
![]() Außerdem finde ich es merkwürdig, dass du die Datei verschiebst, um sie dann zu löschen. Wäre ein Check mit ![]() |
AW: PHP Script zum Dateihash berechnen
Mist daran habe ich nicht gedacht. Es würde auch ohne verschieben gehen?
|
AW: PHP Script zum Dateihash berechnen
Laut
![]() Aber ![]() |
AW: PHP Script zum Dateihash berechnen
Ok, am liebsten wäre es mir dann, wenn ich die hochgeladene Datei nicht verschieben würde. Gibt es denn eine Funktion, die die Datei in den temporären Ordner hochläd, aber nicht verschiebt?
|
AW: PHP Script zum Dateihash berechnen
Manchmal stellst du dich aber auch an :stupid:
Zitat:
PHP-Quellcode:
ist schon ein Dateiname einer temporären Datei (die du im Script dann entweder verschiebst oder löschst).
$_FILES['filevar']['tmp_name']
|
AW: PHP Script zum Dateihash berechnen
Zitat:
|
AW: PHP Script zum Dateihash berechnen
Hm, dann bekomme ich die fehlermeldung:
Code:
Ich habe es auch schon so
Warning: md5_file(): Filename cannot be empty in /var/www/l3s11195/html/Programmierung/DaddysLittleHelpers/FileHash.php on line 38
PHP-Quellcode:
versucht, mit dem gleichen Ergebnis.
md5_file($_FILES['tmp_name'])
|
AW: PHP Script zum Dateihash berechnen
"filevar" sollte deinem "file" entsprechen, also könnte es so gehen:
PHP-Quellcode:
md5_file($filename['tmp_name']);
// oder: md5_file($_FILES['file']['tmp_name']); |
AW: PHP Script zum Dateihash berechnen
Ach so. OK, dann geht es.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz