Upload wurde zum 2x gehackt?!
lima-city → Forum → Sonstiges → Spam und sonstiges Unvergütetes
array
bettag
cleaner array
code
datei
detail
expression
file
geschichte
knast
kripo
last
not
sagen
session
sicherheit
system
type
url
video
-
HALLO Leute,
ich glaube, dass soeben mein Upload gehackt wurde :(
Kann mir jmd. sagen, was der Type will? Die URL ist : ifile-it.info?? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ja ganz einfach, das ist simpelstes Englisch:
Du wurdest gehackt!
Du musst wirklich mal über die Sicherheit nachdenken. -
WIe? Krieg ich jetzt stress?
-
Der will einfach nur sagen, dass du mal deutlich über Sicherheit nachdenken solltest.
-
telelo schrieb:
Der will einfach nur sagen, dass du mal deutlich über Sicherheit nachdenken solltest.
Ja, aber Wie`? Ich hab mir das schoneinmal überlegt?! Wie denn?
Wie hat der sich überhaupt eingehackt?? -
Nein, du nicht. Aber der Typ der deine Seite gehackt hat kann dafür bis zum Knast kommen.
Du solltest die IPs die zur tatzeit aktiv waren auf jeden fall konservieren.
oder du schreibst einfach mal ne mail an die kripo, die können dir sicher weiterhelfen.
offenbar gibts eine sicherheitslücke in deinem system. such sie und schließe sie ;) -
velima schrieb:
Nein, du nicht. Aber der Typ der deine Seite gehackt hat kann dafür bis zum Knast kommen.
Du solltest die IPs die zur tatzeit aktiv waren auf jeden fall konservieren.
oder du schreibst einfach mal ne mail an die kripo, die können dir sicher weiterhelfen.
offenbar gibts eine sicherheitslücke in deinem system. such sie und schließe sie ;)
Das wird sicher teuer - für Bettag. -
velima schrieb:
Nein, du nicht. Aber der Typ der deine Seite gehackt hat kann dafür bis zum Knast kommen.
Du solltest die IPs die zur tatzeit aktiv waren auf jeden fall konservieren.
oder du schreibst einfach mal ne mail an die kripo, die können dir sicher weiterhelfen.
offenbar gibts eine sicherheitslücke in deinem system. such sie und schließe sie ;)
Die IPS Nützen gar nichts und man wird es den Hackern auch nicht nachweisne können da sie sicherlich Einen Proxy benutzen.
EDIT: telelo war schneller
Beitrag zuletzt geändert: 27.6.2010 21:39:06 von gatterer -
telelo schrieb:
velima schrieb:
Nein, du nicht. Aber der Typ der deine Seite gehackt hat kann dafür bis zum Knast kommen.
Du solltest die IPs die zur tatzeit aktiv waren auf jeden fall konservieren.
oder du schreibst einfach mal ne mail an die kripo, die können dir sicher weiterhelfen.
offenbar gibts eine sicherheitslücke in deinem system. such sie und schließe sie ;)
Das wird sicher teuer - für Bettag.
Also vors Gericht will ich wegen so nem Sicherheits Deppen nicht gehen. Kann mir vielleicht jmd. die Lücke sagen?
Hier mein Text:
<?php session_start(); require_once("getid3/getid3.php"); $id3 = new getID3(); $dir = isset($_GET['dir']) ? ($_GET['dir']) : 'files'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>ifile-it</title> <script type="text/javascript" src="http://www.era404.com/js/swfobject.js"></script> <link href="_css/era404.css" rel="stylesheet" type="text/css" /> <script src="_js/swfobject.js" type="text/javascript"></script> <script type="text/javascript"> function formValidator() { var up = document.getElementById("flash_uploader"); var fb = document.getElementById('flash_block'); var upload_button = document.theForm.action_upload; var upload_url = "upload.php"; up.SetVariable("upload_to", upload_url); up.SetVariable("upload_dir", "<?php echo $dir ?>"); up.SetVariable("ul", "100"); upload_button.disabled='true'; return false; } function upload_complete(name,size,type,ft,dir,a) { window.location="index.php?name="+name+"&size="+size+"&type="+type+"&exts="+ft+"&dir="+dir+"&a="+a; } function fileProps(name,size,type,cdate,mdate,dir) { var props = document.getElementById('props'); props.innerHTML = "<div class='sucErr'><div class='tableHeader' style='width: 400px; height: 20px; padding-top: 5px;'>Selected File:</div><br /><table border='0' cellspacing='0' cellpadding='0' style='margin:10px;'><tr><td width='100'><b>NAME:</b></td><td> "+dir+"/"+name+"</td></tr><tr><td><b>SIZE:</b></td><td> "+size+"</td></tr><tr><td><b>TYPE:</b></td><td> "+type+"</td></tr><tr><td><b>CREATED:</b></td><td> "+cdate+"</td></tr><tr><td><b>MODIFIED:</b></td><td> "+mdate+"</td></tr></table></div>"; props.style.display = "block"; } function thumbs() { var mdir = '<?=(@$dir?"?dir=$dir":"")?>'; var thumbs = document.getElementById('thm'); if(thumbs.checked == true) { window.location = "index.php"+mdir+"&thm=1"; } else { window.location = "index.php"+mdir; } } </script> </head> <a name="top"></a> <body> <center> <img src="logo.png" /> <p> <div id='props' style='display:none;font: 8pt Verdana, Georgia, Sans-serif !important;width:360px;margin:10px;padding:10px;'></div> <form method="post" enctype="multipart/form-data" name="theForm" id="theForm" onSubmit="return formValidator();"> <? if(@!empty($_GET['name'])) { $_GET['name'] = cleanFileName($_GET['name']); echo "<div id='props' style='display:block;font: 8pt Verdana, Georgia, Sans-serif !important;width:360px;margin:10px;padding:10px;'>"; if(file_exists(getcwd().'/'.$dir.'/'.$_GET['name'])) { echo "<div class='sucErr'><div class='tableHeader' style='width: 400px; height: 20px; padding-top: 5px;'>Success:</div><br />"; echo "<span class='standardCopy'><i>{$_GET['name']}</i><br />has been successfully uploaded.</span><br />"; } else { echo "<div class='sucErr'><div class='tableHeader' style='width: 400px; height: 20px; padding-top: 5px;'>Error:</div><br />"; $_GET['exts'] = explode(",",$_GET['exts']); $_GET['allowed'] = (in_array(LTRIM(strtolower($_GET['type']),"."),$_GET['exts']) ? "yes" : ($_GET['a'] == true ? "yes" : "no")); $maxsize = return_bytes(ini_get('post_max_size')); echo "<span class='standardCopy'>The file could not be uploaded.</span><br />"; if($_GET['allowed'] == "no") { echo "<span class='standardCopy'><b>Filetype (".$_GET['type'].") not permitted.</b></span><br /><br />"; } else { echo ($_GET['size'] > $maxsize ? "<span class='standardCopy'><b>Filesize ({$_GET['size']}) is larger than permitted by this host ($maxsize).</b></span><br /><br />" : "<br /><br />"); } echo "<span class='boldCopy'>FILE: </span><span class='standardCopy'>".$_GET['name']. "</span><br />"; echo "<span class='boldCopy'>TYPE: </span><span class='standardCopy'>".$_GET['type']. "</span><br />"; echo "<span class='boldCopy'>SIZE: </span><span class='standardCopy'>".$_GET['size']. "</span><br />"; echo "<span class='boldCopy'>ALLOWED: </span><span class='standardCopy'>".$_GET['allowed']. "</span><br />"; } echo "</div></div>"; $_GET = array(); } session_destroy(); ?> <div id="flash_block" style="display: visible;"> <div id="flashcontent"></div> </div> <script type="text/javascript"> var fo = new SWFObject("uploader.swf?ul=100", "flash_uploader", "435", "40", 8, "#FFFFFF", true); fo.addParam("allowScriptAccess", "sameDomain"); fo.addParam("quality", "high"); fo.addParam("scale", "noscale"); fo.addVariable("to", "upload.php"); fo.addVariable("upload_dir", "<?=$dir?>"); fo.addVariable("limit", "100"); fo.addVariable("types", "video|text|pdf|audio|archive|office|image|all"); fo.write("flashcontent"); </script> <!--<input name="action_upload" type="submit" value="Upload Video"><br>--> </form> <div style='display:block;font: 8pt Verdana, Georgia, Sans-serif !important;margin:10px;padding:10px; height: 565px; overflow: auto;'> <table width='95%' border='0' cellpadding="5" cellspacing="0" style="margin-left:10px;"> <tr> <td colspan='5'><? echo $acct; ?></td> </tr> <tr> <td class="tableHeader" width="15"> </td> <td class="tableHeader">Filename</td> <td class="tableHeader">Modified</td> <td class="tableHeader">Size</td> <td class="tableHeader">Description</td> </tr> <?php $imgtypes = array("jpg"=>1,"jpeg"=>1,"gif"=>2,"png"=>3); $showthumbs = (@isset($_GET['thm']) ? 1 : 0); if(!file_exists(getcwd()."/$dir/.s/")) @mkdir(getcwd()."/$dir/.s/",0777); if(file_exists("$dir/")) { if ($handle = opendir("$dir/")) { $count = 0; while (false !== ($file = readdir($handle))) { if($file != "." && $file != ".." && $file != ".s") { $count++; if(!file_exists(getcwd()."/$dir/.s/$file") && array_key_exists(strtolower(substr($file,-3)),$imgtypes)) { $srcf = getcwd()."/$dir/$file"; $dstf = getcwd()."/$dir/.s/$file"; $type = $imgtypes[strtolower(substr($file,-3))]; mcSaveImages(120,90,$srcf,$dstf,15,$type); } echo "<tr bgcolor='".($count%2?"#FFFFFF":"#EFEFEF")."'> <td valign='top'>$count.</td> <td valign='top'><a href='$dir/$file'>$file</a></td> <td valign='top'>".date("m/d/Y h:i:s A",filectime(getcwd()."/$dir/$file"))."</td> <td valign='top'>".niceSize(filesize(getcwd()."/$dir/$file"))."</td>"; if($showthumbs) { if(array_key_exists(strtolower(substr($file,-3)),$imgtypes)) { echo "<td><a href='$dir/$file'><img src='$dir/.s/$file' border='0'></a><br />"; } else { echo "<td align='left'>"; } $details = $id3->analyze(getcwd()."/$dir/$file"); echo "<font size='-3'>"; if(@array_key_exists("video",$details)) { echo "<b>IMAGE DETAILS:</b><hr width='200' align='left' style='border:1px solid #000;'></hr><ul>"; foreach($details['video'] as $k=>$v) { echo "<b>$k:</b> $v<br />"; } if(@$details['playtime_string']) { echo "<b>Playtime:</b> {$details['playtime_string']}<br />"; }echo "</ul>"; } if(@array_key_exists("audio",$details)) { echo "<b>AUDIO DETAILS:</b><hr width='200' align='left' style='border:1px solid #000;'></hr><ul>"; foreach($details['audio'] as $k=>$v) { echo "<b>$k:</b> $v<br />"; } echo "</ul>"; } echo "</td>"; } else { echo "<td> </td>"; } echo "</tr>"; } } closedir($handle); } } ?> </table><div style="clear:both;"></div><br /> </div> <?php function mcSaveImages($forcedwidth, $forcedheight, $sourcefile, $destfile, $imgcomp, $type) { //$type = 1: jpeg | $type = 2: gif | $type = 3: png $g_imgcomp=100-$imgcomp; $g_srcfile=$sourcefile; $g_dstfile=$destfile; $g_fw=$forcedwidth; $g_fh=$forcedheight; if(file_exists($g_srcfile)) { $g_is=getimagesize($g_srcfile); if(abs($g_is[0]-$g_fw)>=abs($g_is[1]-$g_fh)) { $g_iw=$g_fw; $g_ih=abs($g_fw/$g_is[0])*$g_is[1]; } else { $g_ih=$g_fh; $g_iw=abs($g_ih/$g_is[1])*$g_is[0]; } if($type == 1) $img_src=imagecreatefromjpeg($g_srcfile); if($type == 2) $img_src=imagecreatefromgif($g_srcfile); if($type == 3) $img_src=imagecreatefrompng($g_srcfile); $img_dst=imagecreatetruecolor($g_iw,$g_ih); imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $g_iw, $g_ih, $g_is[0], $g_is[1]); if($type == 1) imagejpeg($img_dst, $g_dstfile, $g_imgcomp); if($type == 2) imagegif($img_dst, $g_dstfile, $g_imgcomp); if($type == 3) imagepng($img_dst, $g_dstfile, $g_imgcomp); imagedestroy($img_dst); return true; } else return false; } function niceSize($size) { $sidestep = 1024.0; static $sizeUnits = Array(); if (count($sizeUnits)==0) { $sizeUnits[] = " "."B"; $sizeUnits[] = "KB"; $sizeUnits[] = "MB"; $sizeUnits[] = "GB"; $sizeUnits[] = "TB"; } if ($size==="") return ""; $unitIndex = 0; while ($size>$sidestep) { $size = $size / $sidestep; $unitIndex++; } if ($unitIndex==0) { return number_format($size, 0)." ".$sizeUnits[$unitIndex]; } else { return number_format($size, 1, ".", ",")." ".$sizeUnits[$unitIndex]; } } function return_bytes($val) { $val = trim($val); $last = strtolower($val{strlen($val)-1}); switch($last) { // The 'G' modifier is available since PHP 5.1.0 case 'g': $val *= 1024; case 'm': $val *= 1024; case 'k': $val *= 1024; } return $val; } function cleanFileName($str) { $cleaner = array(); $cleaner[] = array('expression'=>"/[àáäãâª]/",'replace'=>"a"); $cleaner[] = array('expression'=>"/[èéêë]/",'replace'=>"e"); $cleaner[] = array('expression'=>"/[ìíîï]/",'replace'=>"i"); $cleaner[] = array('expression'=>"/[òóõôö]/",'replace'=>"o"); $cleaner[] = array('expression'=>"/[ùúûü]/",'replace'=>"u"); $cleaner[] = array('expression'=>"/[ñ]/",'replace'=>"n"); $cleaner[] = array('expression'=>"/[ç]/",'replace'=>"c"); $cleaner[] = array('expression'=>"/[ß]/",'replace'=>"ss"); $ext_point = strpos($str,"."); if ($ext_point===false) return false; $ext = substr($str,$ext_point,strlen($str)); $str = substr($str,0,$ext_point); foreach($cleaner as $cv) { $str = preg_replace($cv["expression"],$cv["replace"],$str); } return str_replace(" ","_",$str).$ext; } ?> </center> </body> </html>
-
bettag schrieb:
telelo schrieb:
velima schrieb:
[.....]
</body>
</html>[/code]
Knifflig *g*
:D
-
Ich vermute deine Sicherheitslücke liegt hier:
<script type="text/javascript"> var fo = new SWFObject("uploader.swf?ul=100", "flash_uploader", "435", "40", 8, "#FFFFFF", true); fo.addParam("allowScriptAccess", "sameDomain"); fo.addParam("quality", "high"); fo.addParam("scale", "noscale"); fo.addVariable("to", "upload.php"); fo.addVariable("upload_dir", "files"); fo.addVariable("limit", "100"); fo.addVariable("types", "video|text|pdf|audio|archive|office|image|all"); fo.write("flashcontent"); </script>
Da kannst du dir lokal eine HTML-Datei basteln und beliebig viele Dateien auf deinen Server laden. Man braucht nur die absoluten URLs anzugeben.
Flash-Uploader, die keine Sicherheitsprüfung durchführen, am besten gleich vernichten, und eine HTML-/PHP-Lösung vorziehen!
Und zur Knast-Geschichte:
Da wird man keine Chance haben, wenn man kein Programm hat, das die IP aufzeichnet. Da nicht direkt auf die Website zugegriffen wird, kann man die IP nicht so leicht rauskriegen. Außerdem: So viel kannst du mit einer IP auch nicht machen.
Und nun zum rechtlichen Teil: Wenn der Website-Betreiber nicht dafür sorgt, dass er ALLE Sicherheitslücken einer Website vernichtet werden, ist er für eventuellen Schaden verantwortlich!
EDIT: Bitte poste mal den KOMPLETTEN Inhalt der Datei UPLOAD.PHP
Beitrag zuletzt geändert: 27.6.2010 22:29:17 von who -
Naja...
who schrieb: Ich vermute deine Sicherheitslücke liegt hier:
[...]
Und zur Knast-Geschichte:
Da wird man keine Chance haben, wenn man kein Programm hat, das die IP aufzeichnet. Da nicht direkt auf die Website zugegriffen wird, kann man die IP nicht so leicht rauskriegen. Außerdem: So viel kannst du mit einer IP auch nicht machen.
Und nun zum rechtlichen Teil: Wenn der Website-Betreiber nicht dafür sorgt, dass er ALLE Sicherheitslücken einer Website vernichtet werden, ist er für eventuellen Schaden verantwortlich!
[...]
Das man das mit der IP nicht rausfinden kan hab ich ja schon oben gesagt :P.
Beitrag zuletzt geändert: 28.6.2010 10:00:29 von gatterer -
upload.php
<?php //Require approval from flash and handling from flash for files if(@!empty($_FILES)) { //sanitize filename $_FILES['Filedata']['supplied_name'] = $_FILES['Filedata']['name']; $_FILES['Filedata']['name'] = cleanFileName(utf8_decode($_FILES['Filedata']['name'])); if($fp = fopen("log.txt","a+")) { $contents = fwrite($fp, "===================================================\r\n"); $contents = fwrite($fp, "$ _FILES['filedata']: \r\n"); $contents = fwrite($fp, "FILES: ".print_r($_FILES['Filedata'],true)); $contents = fwrite($fp, "$ _GET: \r\n"); $contents = fwrite($fp, "PROPERTIES: ".print_r($_GET,true)); fclose($fp); } if(@isset($_GET['d'])) //simple flag to spoof attemptive hacks (unreliable) { $_SESSION['movedfileprops'] = array(); $_SESSION['movedfileprops']['type'] = $_GET['type']; $_SESSION['movedfileprops']['name'] = $_GET['name']; $_SESSION['movedfileprops']['size'] = $_GET['size']; $_SESSION['movedfileprops']['dir'] = $_GET['dir']; $_SESSION['movedfileprops']['a'] = $_GET['a']; $_SESSION['movedfileprops']['ft'] = explode(",",$_GET['ft']); $_SESSION['movedfileprops']['allowed'] = (in_array(LTRIM(strtolower($_SESSION['movedfileprops']['type']),"."),$_SESSION['movedfileprops']['ft']) ? "yes" : ($_GET['a'] == true ? "yes" : "no")); if($fp = fopen("log.txt","a+")) { $contents = fwrite($fp, "$ _SESSION['movedfileprops']: \r\n"); $contents = fwrite($fp, "SESSION: ".print_r($_SESSION['movedfileprops'],true)); fclose($fp); } if($_SESSION['movedfileprops']['allowed'] == "yes") { $filepath = getcwd()."/".$_GET['dir']."/"; if(!file_exists($filepath)) mkdir($filepath,0777); chmod($filepath,0777); if(move_uploaded_file($_FILES['Filedata']['tmp_name'], $filepath . $_FILES['Filedata']['name'])) chmod($filepath.$_FILES['Filedata']['name'], 0777); } if($fp = fopen("log.txt","a+")) { if(file_exists($filepath . $_FILES['Filedata']['name'])){ $contents = fwrite($fp, "Upload Success: ".$filepath.$_FILES['Filedata']['name']." \r\n"); } else { $contents = fwrite($fp, "Could not upload to: ".$filepath.$_FILES['Filedata']['name']." and I don't know why."); } fclose($fp); } } } function cleanFileName($str) { $cleaner = array(); $cleaner[] = array('expression'=>"/[àáäãâª]/",'replace'=>"a"); $cleaner[] = array('expression'=>"/[èéêë]/",'replace'=>"e"); $cleaner[] = array('expression'=>"/[ìíîï]/",'replace'=>"i"); $cleaner[] = array('expression'=>"/[òóõôö]/",'replace'=>"o"); $cleaner[] = array('expression'=>"/[ùúûü]/",'replace'=>"u"); $cleaner[] = array('expression'=>"/[ñ]/",'replace'=>"n"); $cleaner[] = array('expression'=>"/[ç]/",'replace'=>"c"); $cleaner[] = array('expression'=>"/[ß]/",'replace'=>"ss"); $ext_point = strpos($str,"."); if ($ext_point===false) return false; $ext = substr($str,$ext_point,strlen($str)); $str = substr($str,0,$ext_point); foreach($cleaner as $cv) { $str = preg_replace($cv["expression"],$cv["replace"],$str); } return str_replace(" ","_",$str).$ext; } ?>
upload index.php
<?php session_start(); require_once("getid3/getid3.php"); $id3 = new getID3(); $dir = isset($_GET['dir']) ? ($_GET['dir']) : 'files'; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <title>ifile-it</title> <script type="text/javascript" src="http://www.era404.com/js/swfobject.js"></script> <link href="_css/era404.css" rel="stylesheet" type="text/css" /> <script src="_js/swfobject.js" type="text/javascript"></script> <script type="text/javascript"> function formValidator() { var up = document.getElementById("flash_uploader"); var fb = document.getElementById('flash_block'); var upload_button = document.theForm.action_upload; var upload_url = "upload.php"; up.SetVariable("upload_to", upload_url); up.SetVariable("upload_dir", "<?php echo $dir ?>"); up.SetVariable("ul", "100"); upload_button.disabled='true'; return false; } function upload_complete(name,size,type,ft,dir,a) { window.location="index.php?name="+name+"&size="+size+"&type="+type+"&exts="+ft+"&dir="+dir+"&a="+a; } function fileProps(name,size,type,cdate,mdate,dir) { var props = document.getElementById('props'); props.innerHTML = "<div class='sucErr'><div class='tableHeader' style='width: 400px; height: 20px; padding-top: 5px;'>Selected File:</div><br /><table border='0' cellspacing='0' cellpadding='0' style='margin:10px;'><tr><td width='100'><b>NAME:</b></td><td> "+dir+"/"+name+"</td></tr><tr><td><b>SIZE:</b></td><td> "+size+"</td></tr><tr><td><b>TYPE:</b></td><td> "+type+"</td></tr><tr><td><b>CREATED:</b></td><td> "+cdate+"</td></tr><tr><td><b>MODIFIED:</b></td><td> "+mdate+"</td></tr></table></div>"; props.style.display = "block"; } function thumbs() { var mdir = '<?=(@$dir?"?dir=$dir":"")?>'; var thumbs = document.getElementById('thm'); if(thumbs.checked == true) { window.location = "index.php"+mdir+"&thm=1"; } else { window.location = "index.php"+mdir; } } </script> </head> <a name="top"></a> <body> <center> <img src="logo.png" /> <p> <div id='props' style='display:none;font: 8pt Verdana, Georgia, Sans-serif !important;width:360px;margin:10px;padding:10px;'></div> <form method="post" enctype="multipart/form-data" name="theForm" id="theForm" onSubmit="return formValidator();"> <? if(@!empty($_GET['name'])) { $_GET['name'] = cleanFileName($_GET['name']); echo "<div id='props' style='display:block;font: 8pt Verdana, Georgia, Sans-serif !important;width:360px;margin:10px;padding:10px;'>"; if(file_exists(getcwd().'/'.$dir.'/'.$_GET['name']) AND $_GET['type']!=".php") { echo "<div class='sucErr'><div class='tableHeader' style='width: 400px; height: 20px; padding-top: 5px;'>Success:</div><br />"; echo "<span class='standardCopy'><i>{$_GET['name']}</i><br />has been successfully uploaded.</span><br />"; } else { echo "<div class='sucErr'><div class='tableHeader' style='width: 400px; height: 20px; padding-top: 5px;'>Error:</div><br />"; $_GET['exts'] = explode(",",$_GET['exts']); $_GET['allowed'] = (in_array(LTRIM(strtolower($_GET['type']),"."),$_GET['exts']) ? "yes" : ($_GET['a'] == true ? "yes" : "no")); $maxsize = return_bytes(ini_get('post_max_size')); echo "<span class='standardCopy'>The file could not be uploaded.</span><br />"; if($_GET['allowed'] == "no") { echo "<span class='standardCopy'><b>Filetype (".$_GET['type'].") not permitted.</b></span><br /><br />"; } else { echo ($_GET['size'] > $maxsize ? "<span class='standardCopy'><b>Filesize ({$_GET['size']}) is larger than permitted by this host ($maxsize).</b></span><br /><br />" : "<br /><br />"); } echo "<span class='boldCopy'>FILE: </span><span class='standardCopy'>".$_GET['name']. "</span><br />"; echo "<span class='boldCopy'>TYPE: </span><span class='standardCopy'>".$_GET['type']. "</span><br />"; echo "<span class='boldCopy'>SIZE: </span><span class='standardCopy'>".$_GET['size']. "</span><br />"; echo "<span class='boldCopy'>ALLOWED: </span><span class='standardCopy'>".$_GET['allowed']. "</span><br />"; } echo "</div></div>"; $_GET = array(); } session_destroy(); ?> <div id="flash_block" style="display: visible;"> <div id="flashcontent"></div> </div> <script type="text/javascript"> var fo = new SWFObject("uploader.swf?ul=100", "flash_uploader", "435", "40", 8, "#FFFFFF", true); fo.addParam("allowScriptAccess", "sameDomain"); fo.addParam("quality", "high"); fo.addParam("scale", "noscale"); fo.addVariable("to", "upload.php"); fo.addVariable("upload_dir", "<?=$dir?>"); fo.addVariable("limit", "100"); fo.addVariable("types", "video|text|pdf|audio|archive|office|image|all"); fo.write("flashcontent"); </script> <!--<input name="action_upload" type="submit" value="Upload Video"><br>--> </form> <div style='display:block;font: 8pt Verdana, Georgia, Sans-serif !important;margin:10px;padding:10px; height: 565px; overflow: auto;'> <table width='95%' border='0' cellpadding="5" cellspacing="0" style="margin-left:10px;"> <tr> <td colspan='5'><? echo $acct; ?></td> </tr> <tr> <td class="tableHeader" width="15"> </td> <td class="tableHeader">Filename</td> <td class="tableHeader">Modified</td> <td class="tableHeader">Size</td> <td class="tableHeader">Description</td> </tr> <?php $imgtypes = array("jpg"=>1,"jpeg"=>1,"gif"=>2,"png"=>3); $showthumbs = (@isset($_GET['thm']) ? 1 : 0); if(!file_exists(getcwd()."/$dir/.s/")) @mkdir(getcwd()."/$dir/.s/",0777); if(file_exists("$dir/")) { if ($handle = opendir("$dir/")) { $count = 0; while (false !== ($file = readdir($handle))) { if($file != "." && $file != ".." && $file != ".s") { $count++; if(!file_exists(getcwd()."/$dir/.s/$file") && array_key_exists(strtolower(substr($file,-3)),$imgtypes)) { $srcf = getcwd()."/$dir/$file"; $dstf = getcwd()."/$dir/.s/$file"; $type = $imgtypes[strtolower(substr($file,-3))]; mcSaveImages(120,90,$srcf,$dstf,15,$type); } echo "<tr bgcolor='".($count%2?"#FFFFFF":"#EFEFEF")."'> <td valign='top'>$count.</td> <td valign='top'><a href='$dir/$file'>$file</a></td> <td valign='top'>".date("m/d/Y h:i:s A",filectime(getcwd()."/$dir/$file"))."</td> <td valign='top'>".niceSize(filesize(getcwd()."/$dir/$file"))."</td>"; if($showthumbs) { if(array_key_exists(strtolower(substr($file,-3)),$imgtypes)) { echo "<td><a href='$dir/$file'><img src='$dir/.s/$file' border='0'></a><br />"; } else { echo "<td align='left'>"; } $details = $id3->analyze(getcwd()."/$dir/$file"); echo "<font size='-3'>"; if(@array_key_exists("video",$details)) { echo "<b>IMAGE DETAILS:</b><hr width='200' align='left' style='border:1px solid #000;'></hr><ul>"; foreach($details['video'] as $k=>$v) { echo "<b>$k:</b> $v<br />"; } if(@$details['playtime_string']) { echo "<b>Playtime:</b> {$details['playtime_string']}<br />"; }echo "</ul>"; } if(@array_key_exists("audio",$details)) { echo "<b>AUDIO DETAILS:</b><hr width='200' align='left' style='border:1px solid #000;'></hr><ul>"; foreach($details['audio'] as $k=>$v) { echo "<b>$k:</b> $v<br />"; } echo "</ul>"; } echo "</td>"; } else { echo "<td> </td>"; } echo "</tr>"; } } closedir($handle); } } ?> </table><div style="clear:both;"></div><br /> </div> <?php function mcSaveImages($forcedwidth, $forcedheight, $sourcefile, $destfile, $imgcomp, $type) { //$type = 1: jpeg | $type = 2: gif | $type = 3: png $g_imgcomp=100-$imgcomp; $g_srcfile=$sourcefile; $g_dstfile=$destfile; $g_fw=$forcedwidth; $g_fh=$forcedheight; if(file_exists($g_srcfile)) { $g_is=getimagesize($g_srcfile); if(abs($g_is[0]-$g_fw)>=abs($g_is[1]-$g_fh)) { $g_iw=$g_fw; $g_ih=abs($g_fw/$g_is[0])*$g_is[1]; } else { $g_ih=$g_fh; $g_iw=abs($g_ih/$g_is[1])*$g_is[0]; } if($type == 1) $img_src=imagecreatefromjpeg($g_srcfile); if($type == 2) $img_src=imagecreatefromgif($g_srcfile); if($type == 3) $img_src=imagecreatefrompng($g_srcfile); $img_dst=imagecreatetruecolor($g_iw,$g_ih); imagecopyresampled($img_dst, $img_src, 0, 0, 0, 0, $g_iw, $g_ih, $g_is[0], $g_is[1]); if($type == 1) imagejpeg($img_dst, $g_dstfile, $g_imgcomp); if($type == 2) imagegif($img_dst, $g_dstfile, $g_imgcomp); if($type == 3) imagepng($img_dst, $g_dstfile, $g_imgcomp); imagedestroy($img_dst); return true; } else return false; } function niceSize($size) { $sidestep = 1024.0; static $sizeUnits = Array(); if (count($sizeUnits)==0) { $sizeUnits[] = " "."B"; $sizeUnits[] = "KB"; $sizeUnits[] = "MB"; $sizeUnits[] = "GB"; $sizeUnits[] = "TB"; } if ($size==="") return ""; $unitIndex = 0; while ($size>$sidestep) { $size = $size / $sidestep; $unitIndex++; } if ($unitIndex==0) { return number_format($size, 0)." ".$sizeUnits[$unitIndex]; } else { return number_format($size, 1, ".", ",")." ".$sizeUnits[$unitIndex]; } } function return_bytes($val) { $val = trim($val); $last = strtolower($val{strlen($val)-1}); switch($last) { // The 'G' modifier is available since PHP 5.1.0 case 'g': $val *= 1024; case 'm': $val *= 1024; case 'k': $val *= 1024; } return $val; } function cleanFileName($str) { $cleaner = array(); $cleaner[] = array('expression'=>"/[àáäãâª]/",'replace'=>"a"); $cleaner[] = array('expression'=>"/[èéêë]/",'replace'=>"e"); $cleaner[] = array('expression'=>"/[ìíîï]/",'replace'=>"i"); $cleaner[] = array('expression'=>"/[òóõôö]/",'replace'=>"o"); $cleaner[] = array('expression'=>"/[ùúûü]/",'replace'=>"u"); $cleaner[] = array('expression'=>"/[ñ]/",'replace'=>"n"); $cleaner[] = array('expression'=>"/[ç]/",'replace'=>"c"); $cleaner[] = array('expression'=>"/[ß]/",'replace'=>"ss"); $ext_point = strpos($str,"."); if ($ext_point===false) return false; $ext = substr($str,$ext_point,strlen($str)); $str = substr($str,0,$ext_point); foreach($cleaner as $cv) { $str = preg_replace($cv["expression"],$cv["replace"],$str); } return str_replace(" ","_",$str).$ext; } ?> </center> </body> </html>
-
Ich würde dir empfehlen, entweder eine Session für den Upload zu initialisieren und am Anfang der Datei upload.php die Session-ID zu checken (diese musst du aber über dein Flash-Upload-Formular übermitteln, was wahrscheinlich schwierig wird).
Oder du verzichtest auf Flash und nimmst ein HTML-Upload. Da ist vieles einfacher.
Grundsätzlich ist es sehr gefährlich, wenn du das für jeden anbietest. Es wär schon mal sehr viel sicherer, wenn sich die Leute, die was hochladen wollen, anmelden müssten. -
who schrieb:
Ich würde dir empfehlen, entweder eine Session für den Upload zu initialisieren und am Anfang der Datei upload.php die Session-ID zu checken (diese musst du aber über dein Flash-Upload-Formular übermitteln, was wahrscheinlich schwierig wird).
Oder du verzichtest auf Flash und nimmst ein HTML-Upload. Da ist vieles einfacher.
Grundsätzlich ist es sehr gefährlich, wenn du das für jeden anbietest. Es wär schon mal sehr viel sicherer, wenn sich die Leute, die was hochladen wollen, anmelden müssten.
Ok. Ich mach dann einfach die Upload Geschichte in mein Login Beriech & die Domain kündige ich! -
bettag schrieb:
Ok. Ich mach dann einfach die Upload Geschichte in mein Login Beriech & die Domain kündige ich!
Warum gleich aufgeben? Du brauchst dir doch nur mal ein paar Sachen anzueignen, die du sowieso für weitere Sachen, die du vielleicht mal machen willst, wissen musst!
Am einfachsten kommst du an Informationen, indem du hier klickst: [url]php upload sicherheit[/url]
__________________________________________
Das hier wird mein letzter Beitrag zu diesem Thema sein. Bitte melde dich wieder, wenn du mehr zu dem Thema weißt! Wir werden nicht alles für dich machen!
Und lernen musst du selber!
Beitrag zuletzt geändert: 28.6.2010 16:20:59 von who -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage