Dasar Web Hacking dalam artikel ini akan saya bahas secara step by step sampai tuntas. Semua gambar dan informasi di dalam artikel ini diambil dari kejadian nyata (Proof Of Concept). Artikel ini merupakan sebuah “advisory” untuk salah satu Universitas ternama di Jawa Timur.

Universitas tersebut memiliki sebuah halaman website, dan beberapa sub domain untuk setiap jurusannya. Tanpa disadari, bahwa website Universitas sebesar itu memiliki celah. Celah ini saya temukan pada awal bulan Mei 2011, tepat saat gencar-gencarnya Penerimaan Mahasiswa Baru di seluruh PTN Indonesia.

Sesuai perjanjian saya dengan Beliau, bahwa Universitas tersebut memiliki peranan penting di Indonesia, dan juga nama baiknya sangat dijaga. Saya memutuskan untuk menyamarkan nama dan gambar yang ada di dalam “advisory” ini. Sebut saja UNZA (nama samaran) dan memiliki domain yang beralamatkan www.ua.ac.id (domain samaran).

Bukti Hasil Hacking

Berikut beberapa screen shoot bahwa saya telah berhasil memasuki server tsb,

Web Hacking Hasil dari Database Manipulation

( Hasil dari Manipulasi Database )

Dasar Web Hacking Hasil dari Local XSRF

( Hasil dari Local XSRF )

Saya telah mengkonfirmasikan hal ini ke Bp. Ari Kurni***n selaku penanggung jawab dari website tsb. Dan Beliau menanggapinya dengan baik, Beliau berkata akan mengadakan pembenahan sesegera mungkin. Saya harap advisory ini akan menjadi pelajaran bagi semua Web Administrator agar lebih berhati-hati lagi. Mengingat tidak ada sistem yang aman 100%.

Dasar Web Hacking (Teknik)

1. Directory Trasversal / Local File Disclosure (LFD)

LFD adalah celah yang bisa mendownload file dari server local, baik file tersebut berekstensi non-PHP, atau PHP, tergantung dari bugs yang ada. Tidak hanya file, bahkan folder pun juga bisa di-download, dan jika dibukan dengan editor berisi informasi direktorinya.

2. Remote Cross Site Request Forgery (XSRF)

XSRF merupakan celah yang terjadi karena kurang adanya validasi (biasanya menggunakan fitur PHP_SESSION) sebelumnya. Sehingga server tidak membedakan apakah request berasal dari server local, atau dari luar server. Salah satu contohnya adalah file action pada attribute form HTML, jika file action tersebut tidak memeriksa terlebih dahulu sumber request, maka Hacker bisa membuat from HTML tersebut dari luar, dan mengarahkan attribute action ke server yang dituju.

3. Local File Inclusion (LFI)

Hampir sama dengan LFD, hanya saja untuk LFI, file tidak didownload, melainkan di-include oleh server, sehingga jika file tersebut berekstensi PHP, maka source code program di dalamnya akan dieksekusi. Istilah ‘local’ menandakan bahwa hanya file local saja yang bisa di-include.

4. Local Cross Site Request Forgery (XSRF)

Dasar web hacking ini sama dengan XSRF sebelumnya, bedanya terletak pada sistem yang dapat melakukan hal tersebut. Kata “LOCAL” menunjukan kalau teknik ini hanya bisa dilakukan melalui “LOCALHOST”, dalam arti sistem server itu sendiri.

Ebook Web Hacking Proof of Concept

Agar lebih mudah dalam memahaminya dasar web hacking ini, berikut saya telah mendokumentasikan Advisory ini ke dalam file eBook PDF.

 Download Proof of Concept

Mengingat advisory ini hanya ditujukan untuk pembelajaran, tidak untuk merusak (cracking). Jadi, selamat belajar, tetap original dan jaya Indonesiaku.

LINK BACKUP : https://lebaksono.files.wordpress.com/2011/07/teknik-web-hacking.pdf

Bukti Percakapan via E-Mail

From: Pudja Mansyurin pudja.mansyurin@yahoo.com
To: soboparan@yahoo.com
Sent: Tuesday, July 5, 2011 6:59 PM
Subject: Advisory

Assalamualaikum, Berikut Pak Ari, sudah saya dokumentasikan tentang celah dari UNESA kemarin.
Berikut bisa Bapak baca pada artikel saya disini, dan bisa mengunduh advisory lengkapnya dalam
format PDF.

Untuk alasan keamanan, artikel tersebut masih saya Proteksi.
Bapak bisa membukanya dengan password : 15379

Terima Kasih,

From: Ari Kurniawan soboparan@yahoo.com
To: Pudja Mansyurin pudja.mansyurin@yahoo.com

Assalamualaikum
Terima kasih banyak atas advice nya …

saya akan coba belajar untuk mencari solusi untuk nambal itu berdasar saran-saran yang bagus
dari sampeyan. Mudah-mudahan Mas Pudja juga tidak keberatan membantu saya menambal lobang-lobang
itu … atau paling tidak memberitahu jika ada yang rentan dibobol

Untuk artikel itu, sebenarnya saya tidak keberatan kalo demi pengetahuan. Cuman yang saya
kawatirkan jika file itu (atau artikel di blog Mas Pudja) kepegang orang yang suka niat merusak
tentu akan menjadi tidak baik.

Kalau sama Mas Pudja saya sangat percaya sekali, terasa orang yang baik-baik. Meski baru kenal.
Sampeyan sudah memberitahukan ke saya itu menunjukkan Mas Pudja punya itikad yang mulia untuk
mengingatkan orang lain, terutama saya …

Kami juga perlu waktu untuk memperbaiki script tersebut, jadi nyambi2 pekerjaan sambil memperbaiki
script tersebut, jadi saya mohon artikelnya jangan disebar dulu ke orang lain sampai kami bisa
memahami kekurangan kami dalam mengelola security.

Karena kami juga membawa nama baik Unesa jadi saya mohon artikelnya tidak disebar secara lugas …
Kalau bahas tentang ilmunya saya setuju untuk dishare ke orang lain.

Kalau boleh tau, teman Mas Pudja yang diterima di Unesa apa juga suka / tertarik dalam hal
security web seperti Mas Pudja? … kalau iya mohon dong saya dikenalkan …

Sejak lama saya ingin mengkader mahasiswa untuk membantu di Puskom, sekaligus agar bisa dipakai
mahasiswa untuk berlatih bekerja. Jadi kekampus tidak hanya sekedar kuliah saja biar nambah
pengalaman dan jejaring .. cuman saya belum menemukan mahasiswa yang tepat seperti Mas Pudja.

Itu dulu, saya boleh minta nomor hapenya? kapan2 pengen kontak ni … hape saya 0812316****

Itu dulu ya ..
Wassalam

Bukti Percakapan via YMessenger

pudja.mansyurin (7:53:16 PM): Test
soboparan (7:53:37 PM): halo pak .. salam kenal
pudja.mansyurin (7:53:47 PM): salam kenal juga…
soboparan (7:53:49 PM): posisi diman ani ?
pudja.mansyurin (7:54:07 PM): di Mojosari Pak, tau kan
pudja.mansyurin (7:54:14 PM): 😀
soboparan (7:54:26 PM): heheh ya tau .. kalo aku pulang kampung lewat mojosari kok :))
pudja.mansyurin (7:54:54 PM): orang mana Pak?
soboparan (7:54:56 PM): terima kasih sudah dibantu untuk memberi tahu ada yang janggal di web ua soboparan (7:55:00 PM): jombang
pudja.mansyurin (7:55:07 PM): owh…
soboparan (7:55:09 PM): tapi sudah tinggal di tanggulangin
pudja.mansyurin (7:55:35 PM): iya Pak, saya juga tau kontak Bpk dari www.tanggulangin.com soboparan (7:55:49 PM): o ya ??
pudja.mansyurin (7:55:50 PM): Susah bener nyari nya ya
pudja.mansyurin (7:56:07 PM): Gini ya Pak
pudja.mansyurin (7:56:12 PM): langsung saja,
soboparan (7:56:19 PM): domain itu lama gak diurus … sibuk di kampus 🙁
soboparan (7:56:25 PM): oke gimana pak ?
pudja.mansyurin (7:58:28 PM): gini Pak
pudja.mansyurin (7:58:59 PM): pertama… rentan pada serangan Directory Trasversal / Local File Disclosure
pudja.mansyurin (7:59:16 PM): b-)
pudja.mansyurin (7:59:30 PM): Coba” Bpk lihat url ini, baak.ua.ac.id/images/?../../../../../../../etc/passwd
soboparan (8:00:36 PM): ya .. betul …
soboparan (8:00:44 PM): sampe gak kepikiran …
pudja.mansyurin (8:00:57 PM): hemm…
soboparan (8:01:05 PM): bahasanya hacker aneh2 ya
pudja.mansyurin (8:01:14 PM): Maklum Pak, tidak ada yang sempurna 100%
soboparan (8:01:45 PM): setuju sekali
pudja.mansyurin (8:01:46 PM): Coba” Bpk Googling aja, nanti pasti banyak pengertianya
pudja.mansyurin (8:01:54 PM): 😉
pudja.mansyurin (8:01:58 PM): :-bd
soboparan (8:02:28 PM): betul .. hole banyak yang bahas di internet .. cuman mo baca satu-satu sampe gak sempat ..
pudja.mansyurin (8:02:57 PM): Oh iya pak, sama
pudja.mansyurin (8:03:16 PM): Omong2, kemarin lusa Web ua sempet Down ya??
pudja.mansyurin (8:03:38 PM): Kog temen saya download Hasil TOEFL (PDF) tidak bisa,
pudja.mansyurin (8:03:51 PM): kenapa ya Pak?
pudja.mansyurin (8:06:13 PM): Kayaknya sibuk ya,
pudja.mansyurin (8:08:21 PM): Ya udah Pak, di lanjutin lain kali aja
pudja.mansyurin (8:08:34 PM): Sebenernya masih ada lagi celah selain itu,
pudja.mansyurin (8:08:41 PM): Selamat Malam,
soboparan (8:09:07 PM): iya sejak akhir mei web ua traffic ua luar biasa, mulai pengumuman snmptn undangan, jadwal / pengumuman sertifikasi guru, pengumuman snmptn tulis, orang nyari penerimaan mahasiswa baru
soboparan (8:09:15 PM): iya apa lagi ?
soboparan (8:09:31 PM): pak pudja kok download toefl di ua ??
soboparan (8:09:50 PM): enggak sibuk .. sudah santai ini. masih di kampus .. habis ke belakang 🙂
pudja.mansyurin (8:10:11 PM): Owh, saya kira lagi mbenahin
soboparan (8:10:37 PM): insya Allah besok2 nyambi benahin …
pudja.mansyurin (8:10:48 PM): Emhh, gini ya Pak, Tidak usah panggil saya “Pak Puja”,
pudja.mansyurin (8:11:15 PM): karna saya baru lulusan SMK Pak. Ari
pudja.mansyurin (8:11:24 PM): 🙂
soboparan (8:11:30 PM): belum kuliah ??
pudja.mansyurin (8:11:47 PM): Iya, baru daftar ulang Pak,
soboparan (8:12:36 PM): kuliah dimana ???
pudja.mansyurin (8:12:54 PM): di PENS Pak,
soboparan (8:13:21 PM): oo sipp .. selamat sudah jadi mahasiswa =d>
pudja.mansyurin (8:13:45 PM): ahaha… makasih, =))
soboparan (8:13:52 PM): ponakan saya pengumuman pens beberapa hari lalu gak diterima
pudja.mansyurin (8:14:12 PM): memang jalur apa ya?
pudja.mansyurin (8:15:31 PM): Waduh jadi mbahas yang lain nih
pudja.mansyurin (8:15:52 PM): Langsung saja ya,
pudja.mansyurin (8:16:11 PM): Web ua pakai FreeBSD,
soboparan (8:16:56 PM): iya ..
soboparan (8:17:15 PM): itu pake servernya puskom .. jadi dipake saja .
soboparan (8:17:22 PM): ada yg aneh di freeBsd ?
pudja.mansyurin (8:17:53 PM): ndak, tidak ada kog,
pudja.mansyurin (8:18:17 PM): tenang aja, FreeBSDnya aman :-bd
pudja.mansyurin (8:19:12 PM): tapi pada sub domain intra.ua.ac.id, ada celah yang fatal
pudja.mansyurin (8:19:14 PM): hmm
soboparan (8:19:50 PM): wah saya sampeyan kuliah di PENS .. coba kalo di ua, pasti tak minta bantuin di puskom .. :))
soboparan (8:19:57 PM): fatal ? .. apa ya ?
pudja.mansyurin (8:21:25 PM): tenang saja Pak, ada temen saya yang juga ke ua,
pudja.mansyurin (8:21:33 PM): yang mau download tadi Lho,
soboparan (8:21:45 PM): suka sama utak atik server ? .. dari SMK juga ?
pudja.mansyurin (8:21:55 PM): yupz.. betul..
soboparan (8:22:14 PM): yang fatal di intra.ua.ac.id apa mas ? pudja.mansyurin (8:22:58 PM): Pada file http://intra.ua.ac.id/file_bank.php terdapat celah REMOTE XSRF (Cross Site Scriptting)
soboparan (8:23:59 PM): emmm .. conthnya gimana tu ?
soboparan (8:24:11 PM): temennya diterima di prodi apa ??
pudja.mansyurin (8:24:52 PM): ini referensi tentang XSS http://lebaksono.wordpress.com/2011/06/14/mencegah-serangan-xss/
pudja.mansyurin (8:25:17 PM): emm… pokoknya lulusan dari SMKN 1 Pungging kog,
soboparan (8:26:47 PM): siipppp
soboparan (8:27:02 PM): aktif ngeblog
pudja.mansyurin (8:27:38 PM): karena kurangnya validasi session pada file tsb, membuat saya bisa mengUpload file ke server ua,
pudja.mansyurin (8:28:00 PM): hmm… tmbh menarik ya
soboparan (8:30:22 PM): emmm … ya. berarti validasinya masih kurang ni .. 🙁
pudja.mansyurin (8:30:49 PM): kayaknya sih begitu Pak,
pudja.mansyurin (8:31:04 PM): silahkan di coba sendiri ini Pak
pudja.mansyurin (8:31:06 PM): http://almansyurin.web.id/data/ua.php
pudja.mansyurin (8:31:41 PM): 😕
soboparan (8:33:02 PM): hebat .. siip ..
soboparan (8:34:04 PM): tanya ni .. kok bisa tau ada subdomain itu, terus file_bank.php dsb ya ? … ilmunya sampeyan sudah sip, tinggal mengasah di kampus nantinya
pudja.mansyurin (8:35:02 PM): file ini mengungkap semuanya Pak,
pudja.mansyurin (8:35:03 PM): http://baak.ua.ac.id/images/?../../../../../../../usr/local/etc/apache22/extra/httpd-vhosts.conf
soboparan (8:36:04 PM): pintunya di Directory Trasversal / Local File Disclosure tadi ya ..
pudja.mansyurin (8:36:34 PM): emm… yupz… dari celah kecil itu Pak, 😕
pudja.mansyurin (8:36:42 PM): http://arikurniawan.cv.ua.ac.id/doc/photo/arikurniawan.jpg
pudja.mansyurin (8:36:49 PM): Ini kah foto Bpk, keren juga ya
pudja.mansyurin (8:36:54 PM): 🙂
soboparan (8:38:24 PM): kayaknya iya … 🙂
soboparan (8:38:46 PM): 9 tahun yang lalu
soboparan (8:38:51 PM): sekarang sudah menua …
pudja.mansyurin (8:39:26 PM): berarti ilmu tmbh bnyak ini, bisa sharing kyaknyam
soboparan (8:39:28 PM): terus bisa tau ada file_bank.php dari mana ya ??
soboparan (8:40:07 PM): semakin banyak kita memberi ilmu pada orang lain semakin banyak pula ilmu yang kita dapat ….
pudja.mansyurin (8:40:28 PM): setuju Pak, bener bget..
soboparan (8:40:51 PM): sayang saya mengenal informatika sudah tua .. tidak seperti sampeyan yang masih muda. jadi logika sejak dini sudah terasah ..
pudja.mansyurin (8:41:09 PM): kan dari file httpd-vhosts.conf tersebut, kita tau letak sub domain intra,
pudja.mansyurin (8:41:40 PM): emg Bpk dulu ngambil jurusan apa?
pudja.mansyurin (8:41:59 PM): /usr/home/soboparan/intra
soboparan (8:42:25 PM): tidak banyak hacker yang mau memberi tahu hole pada orang lain .. sekaligus patching. Sampeyan masih muda tapi sudah punya karakter yang sangat baik … saluuttt :-bd
pudja.mansyurin (8:43:25 PM): hehee.. makasih Pak,
pudja.mansyurin (8:43:54 PM): kan saya sama2 belajar, jadi tidak ada salahnya selalu mengingatkan,
soboparan (8:43:55 PM): saya dulu ambil listrik, inginnya kuliah di elektronika … tapi terus kuliah di informatika baru umur 25 tahun …
pudja.mansyurin (8:43:59 PM): 🙂
pudja.mansyurin (8:44:52 PM): Emh… namun kalau ada niat pasti semua mudah kan,
soboparan (8:45:20 PM): tapi jalan dari Allah kayaknya disitu .. akhirnya di ua ini …
soboparan (8:45:22 PM): betulll
pudja.mansyurin (8:45:41 PM): yupz Pak, setuju bnget saya,
pudja.mansyurin (8:46:43 PM): brikut filenya Pak,
pudja.mansyurin (8:46:44 PM): http://baak.ua.ac.id/images/?../../../../../../../usr/home/soboparan/intra/file_bank.php%00
soboparan (8:48:39 PM): hemmm .. lubangnya jadi besarrr ya … 🙁
pudja.mansyurin (8:48:53 PM): :)] hemm
pudja.mansyurin (8:49:05 PM): masih ada celah lagi Pak, 🙂
soboparan (8:49:29 PM): iya ??
pudja.mansyurin (8:49:45 PM): yupz…
soboparan (8:49:55 PM): dibagian mana?
pudja.mansyurin (8:49:58 PM): kali ini LFI (Local File Inclusion)
pudja.mansyurin (8:50:17 PM): dan naas”nya, hal ini malah terletak di Halaman Utama ua soboparan (8:50:44 PM): wah .. malam ini saya tambah ilmu banyak ni .. 🙂
pudja.mansyurin (8:50:57 PM): haha… sama2 Pak,
soboparan (8:51:00 PM): ya giman ??
pudja.mansyurin (8:51:38 PM): bentar dulu,
pudja.mansyurin (8:51:51 PM): sblum kita lanjut ke situ, ini file apa ya http://baak.ua.ac.id/images/?../../../../../../../usr/home/soboparan/www1/common.php%00
soboparan (8:52:11 PM): itu koneksi ke database
pudja.mansyurin (8:52:19 PM): hemm…
pudja.mansyurin (8:52:24 PM): 😀
soboparan (8:52:37 PM): itu yang saya bilang holenya jadi besar
pudja.mansyurin (8:52:49 PM): tidak Pak, tidak bgitu
pudja.mansyurin (8:53:02 PM): bukanya akses ke DB hanya bisa dari LOCALHOST saja,
pudja.mansyurin (8:53:10 PM): karna adanya firewall???
soboparan (8:54:29 PM): utk yang LFI apa bagian itu ?
pudja.mansyurin (8:55:02 PM): bukan, itu terpisah Pak, malah terletak pada file index.php dari Homepage ua,
pudja.mansyurin (8:55:12 PM): 😕
soboparan (8:57:08 PM): index ? …
pudja.mansyurin (8:57:30 PM): maaf salah,
pudja.mansyurin (8:57:42 PM): tapi index_ua.php kan??
soboparan (8:57:48 PM): iya..
pudja.mansyurin (8:57:59 PM): 🙂
soboparan (8:58:20 PM): ada apa di file itu ?
pudja.mansyurin (8:59:02 PM): tidak jadi Pak,
pudja.mansyurin (8:59:09 PM): file dialihkan,
pudja.mansyurin (8:59:21 PM): ke subdomain baak.ua.ac.id
soboparan (8:59:41 PM): dialihkan? … kayak hape gak nyambung aja ? .. :))
pudja.mansyurin (8:59:57 PM): hee… mngkin sudah ada yg mbenerin,
pudja.mansyurin (9:00:07 PM): ini contoh inclusion-nya, http://baak.ua.ac.id/?s=../../../../../../../../usr/home/soboparan/www1/uts.html%00
soboparan (9:00:10 PM): saya gak ngalihkan tu
pudja.mansyurin (9:00:32 PM): maaf-maaf,,, hahaha 😀
soboparan (9:02:14 PM): oke segera nanti saya agendakan pertolongan pertama untuk menutupi celahnya …
soboparan (9:02:34 PM): jika masih ada … kayaknya masih banyak tolong saya diberi tahu ya ..
pudja.mansyurin (9:03:14 PM): lebih baik begitu, saya senantiasa membantu,
pudja.mansyurin (9:03:32 PM): keburu-buru kah Pak??? kayaknya mau pulang ya?
soboparan (9:03:43 PM): mo sholat dulu …
soboparan (9:03:53 PM): entar kelupaan .. sudah ngantuk soalnya …
pudja.mansyurin (9:03:55 PM): isya”?
soboparan (9:04:11 PM): ya iya dong … masak maghrib 🙂
soboparan (9:04:28 PM): sering online malam2 ya ??
pudja.mansyurin (9:04:30 PM): jam berapa ini?? =))
pudja.mansyurin (9:04:59 PM): kalau kemaleman, di lanjutin besok saja Pak, gimana?
soboparan (9:05:20 PM): oke .. kalo oonline YM entar tak sapa ya …
pudja.mansyurin (9:05:36 PM): yup yupz…
soboparan (9:05:39 PM): terima kasih banyak dibantu … gusti Allah yang bisa bales ..