Avatar billede voirsous Nybegynder
06. januar 2004 - 22:56 Der er 9 kommentarer og
1 løsning

Simpelt upload script crasher

... Fandt andets sted her opå E noget kode, som jeg fik bakset det her ud af:

<form enctype="multipart/form-data"  action="login.php?side=billede&upload=billede" method="post">
<input type="file" name="billedesti" size="20" />
<input type="submit" name="opret" value="Tilføj billede" />
</form>



$uploadfile = $_FILES['billedesti']['tmp_name'];
$uploaddir = "bruger/".$_FILES['userfile']['name'];

if (move_uploaded_file($uploadfile, $uploaddir)) {
  print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
  print_r($_FILES);
} else {
  print "Possible file upload attack!  Here's some debugging info:\n";
  print_r($_FILES);
}

selvom jeg prøver med en valid gif fil ender den i
Possible file upload attack!  Here's some debugging info:
array {

}

er helt grøn på det ehr felt, så en god løsning der simpel illustrere det vil være kanon :)
Avatar billede erikjacobsen Ekspert
06. januar 2004 - 23:01 #1
der er ikke noget galt i det du skriver her - det må have noget at gøre
med den anden kode du har, eller den sammenhæng det bliver brugt i. Kan
du vise os mere kode, eller koge det ned til et minimalt eksempel. Hvilken
server afvikler du det på?
Avatar billede sukos Juniormester
07. januar 2004 - 11:44 #2
Skal navnet ikke med?
if (move_uploaded_file($uploadfile, $uploaddir . $_FILES['billedesti']['name']))
Avatar billede voirsous Nybegynder
07. januar 2004 - 15:25 #3
afvikler det på Whitehat.dk
$uploaddir = "bruger/".$_FILES['billedesti']['name'];
bruger/ er midlertidligt til jeg får ordnet det andet problem, som jeg også har oprettet et spm. om her på exp...

altså selve upload koden er
if($opret) {


$uploadfile = $_FILES['billedesti']['tmp_name'];
$uploaddir = "bruger/".$_FILES['billedesti']['name'];

print "<pre>";
if (move_uploaded_file($uploadfile, $uploaddir)) {
  print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
  print_r($_FILES);
} else {
  print "Possible file upload attack!  Here's some debugging info:\n";
  print_r($_FILES);
}
}

ved ikke om det har noget at sige jeg roder med session'er andet steds i dokumenet.

i kan logge ind og prøve her:
http://melao.users.whitehat.dk/astronomen/siden/?frem=login
bruger: eksperten
kode: test

bagefter skal i klikke jer ind under
"Billeder ins"
Avatar billede voirsous Nybegynder
07. januar 2004 - 15:27 #4
<?php
}
} elseif($side=="billede") {
if($opret) {


$uploadfile = $_FILES['billedesti']['tmp_name'];
$uploaddir = "bruger/".$_FILES['billedesti']['name'];

print "<pre>";
if (move_uploaded_file($uploadfile, $uploaddir . $_FILES['billedesti']['name'])) {
  print "File is valid, and was successfully uploaded.  Here's some more debugging info:\n";
  print_r($_FILES);
} else {
  print "Possible file upload attack!  Here's some debugging info:\n";
  print_r($_FILES);
}
}
?>

<h3>din muligheder</h3>
<?php
include("loginmenu.php");
?><br /><br />
<h2>Tilføj billede</h2>
<h3>tilføj et billede her</h3>
hvis du vil slette nogle billede, kan det gøres via
<a href="login.php?side=galleri">Galleri ins</a>
<form action="login.php?side=billede" method="post">

<h2>Upload billede</h2>
max. 150kb<br />
<form enctype="multipart/form-data"  action="login.php?side=billede&upload=billede" method="post">
Billede overskrift<br />
<input type="text" name="billedeoverskrift" size="40" maxlength="40" />
<br /><br />
Billede tekst<br />
<textarea cols="40" rows="5" name="billedetekst"></textarea>
<br /><br />
Hent billede på harddisk<br />
<input type="file" name="billedesti" size="20" />
<br /><br />
Hvad er billede af<br />
<select name="kategori" size="1">
<option>Solen</option>
<option>Merkur</option>
<option>Venus</option>
<option>Mars</option>
<option>Jordens måne</option>
<option>Jupiter</option>
<option>Saturn</option>
<option>Uranus</option>
<option>Neptun</option>
<option>Pluto</option>
<option>Messier objekter</option>
<option>Stjerner</option>
<option>Planeternes måner</option>
<option>Andet</option>

</select>
<input type="submit" name="opret" value="Tilføj billede" />
</form>
<?php
}

?>
Avatar billede erikjacobsen Ekspert
07. januar 2004 - 15:45 #5
Se nu hjalp det jo at få noget kode. Jeg havde ikke lige set det navn, der
var forkert som sukos påpegede, men det ville ikke give den fejl der indtraf.

Fejlen ligger imidlertid i linien

<form action="login.php?side=billede" ....

som ikke er afsluttet før den næste starter. Det skal den være - eller også
skal den fjernes.
Avatar billede voirsous Nybegynder
07. januar 2004 - 16:13 #6
arh det er da også en fejl af dimisionner, ved ikke hvordan den har fået smuttet sig ind der!
nu virker det, hvis jeg ellers havde tilladelse :)

Warning:  move_uploaded_file(bruger/ufo.jpgufo.jpg): failed to open stream: Permission denied in /usr/home/whitehat_dk/users/melao/astronomen/siden/login.php on line 228
Warning:  move_uploaded_file(): Unable to move '/var/tmp/php78VWE9' to 'bruger/ufo.jpgufo.jpg' in /usr/home/whitehat_dk/users/melao/astronomen/siden/login.php on line 228

må finde et andet sted at lege videre, eller fået sat min egen server op. Tak erik :) dropper du et svar?
Avatar billede erikjacobsen Ekspert
07. januar 2004 - 17:26 #7
ufo.jpgufo.jpg  tyder på du giver den navnet 2 gange ;)

Du kan selv give tilladelse i kataloget bruger - chmod 777 i din ftp-klient
(formentlig)
Avatar billede voirsous Nybegynder
18. januar 2004 - 20:50 #8
kanon erik smider du et svar?
Avatar billede erikjacobsen Ekspert
18. januar 2004 - 21:17 #9
Tak, jeg samler ikke på point.
Avatar billede voirsous Nybegynder
28. januar 2004 - 23:01 #10
fair nok.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester