Celah-Celah Keamanan Pada Website Pemerintah Part I
Ini tutor pesenan kang Elli ( B0c4H_ID30T #27 ) sebenernya celah atau bug di website Pemerintahan Indonesia udah lama atau sering di temuin.
Sebelumnya mohon maaf karna ada suatu hal dsb, tidak saya sertakan gambar ditutor ini.
Live target www.sidoarjokab.go.id
Sekitar akhir Mei 2010 lalu, saya mendapati banyak halaman website Pemerintah Kabupaten Sidoarjo (www.sidoarjokab.go.id) yang menampilkan pesan deface. Celahnya sendiri sudah ada sejak awal 2007. Saat itu sidoarjokab.go.id menggunakan jasa Solusindo Hosting sebelum beralih ke PT. Data Utama Dinamika.
Salah satu celah pada website ini sudah banyak dibicarakan di forum-forum underground (meski “hanya” sekedar info untuk melihat /etc/passwd) sejak awal tahun 2009. Yang membuat saya lebih prihatin, belum ada tindakan dari Administrator untuk melakukan perbaikan.
Saya kemudian memulai explorasi mencari jalan termudah bagi Attacker untuk masuk, celah-celah apa saja yang ada pada website tersebut, lalu melaporkannya kepada Admin dengan meninggalkan solusi pada file yang vulnerable di server Pemerintah Kabupaten Sidoarjo. Beberapa solusi yang saya sarankan telah diimplementasikan walaupun belum menyeluruh. Berikut catatan perjalanan saya dalam mencari celah pada website Pemerintah Kabupaten Sidoarjo yang dimanfaatkan oleh Attacker untuk melakukan pengrusakan dan menanam backdoor. Selamat menikmati 😁
Semua pesan deface yang saya jumpai meninggalkan nama dan alamat website yang sama.
Ada total 74 halaman yang diubah tampilannya oleh Jester:
http://www.sidoarjokab.go.id/domain/perpus/daftar_buku/buku_2006/index.php
http://www.sidoarjokab.go.id/ekonom/sembako/index.php
http://www.sidoarjokab.go.id/interaktif/agenda/index.php
http://www.sidoarjokab.go.id/interaktif/guestbook/harian/index.php
http://www.sidoarjokab.go.id/interaktif/guestbook/harian/index2.php
http://www.sidoarjokab.go.id/interaktif/guestbook/harian/indexi.php
http://www.sidoarjokab.go.id/interaktif/guestbook/index.php
http://www.sidoarjokab.go.id/interaktif/new/index.htm
http://www.sidoarjokab.go.id/interaktif/new/index.php
http://www.sidoarjokab.go.id/interaktif/new/index-news.php
http://www.sidoarjokab.go.id/interaktif/poling/index.php
http://www.sidoarjokab.go.id/other/baz/main.php
http://www.sidoarjokab.go.id/other/baz/main-bgBAZ2008.html
http://www.sidoarjokab.go.id/other/BlockGrand/default-menus.htm
http://www.sidoarjokab.go.id/other/BlockGrand/index-main.htm
http://www.sidoarjokab.go.id/other/dekranas/guest/index.php
http://www.sidoarjokab.go.id/other/warintek/index-.php
http://www.sidoarjokab.go.id/sub/bagianap/indexing.htm
http://www.sidoarjokab.go.id/sub/bkd/Berita/index.php
http://www.sidoarjokab.go.id/sub/bkd/Berita/index_asli.php
http://www.sidoarjokab.go.id/sub/bkd/Berita/index2.php
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/index.htm
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_access_denied.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_footer.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_footer2.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_forumgroup.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_forums.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_forums_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_forums_list.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_header.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_last_discuss_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_last_discussions.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_post_area.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_post_closed.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_post_form.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_posthold.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_posts.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_posts_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_topics.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_topics_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_topics_write.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_user_info.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_user_info_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_warning.html
http://www.sidoarjokab.go.id/sub/bkd/forum/index2.php
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_access_denied.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_footer.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_footer2.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_forumgroup.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_forums.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_forums_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_forums_list.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_header.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_last_discuss_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_last_discussions.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_area.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_closed.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_area.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_closed.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_form.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_posthold.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_posts.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_posts_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_topics.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_topics_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_user_info.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_user_info_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_warning.html
http://www.sidoarjokab.go.id/sub/candi/default.htm
http://www.sidoarjokab.go.id/sub/gedangan/default.htm
http://www.sidoarjokab.go.id/sub/index.php
http://www.sidoarjokab.go.id/sub/krian/index.html
http://www.sidoarjokab.go.id/sub/main.php
http://www.sidoarjokab.go.id/sub/prambon/default.htm
http://www.sidoarjokab.go.id/sub/rsd/index.php
http://www.sidoarjokab.go.id/sub/tulangan/default.htm
Hingga kini halaman tersebut belum dibenahi oleh Admin. Mengenai defacernya sendiri, banyak yang menyebut si Jester & Ghost61 ini berasal dari Turki (http://www.google.co.id/search?q=Ghost61+Jester).
Bagaimana cara mereka masuk? dimana letak celah keamanannya? tidak usah tanya si Jester, Ghost 61, apalagi tanya Galileo, cukup lanjutkan membaca artikel ini 😁
HTML Injection
Celah pertama yang saya bahas ini pasti sudah sering Anda temui. Target exploitasi celah ini adalah layanan Buku Tamu sidoarjokab.go.id. Saya memasukkan code HTML berupa tag <h1> pada form Buku Tamu:
Injeksi code HTML pada Buku Tamu
Hasilnya, input saya tidak disanitasi sehingga identitas dan komentar saya tampil dalam ukuran heading 1:
Hasil Injeksi code HTML pada Buku Tamu
Saya kemudian mencoba memasukkan code JavaScript pada Buku Tamu:
Injeksi code JavaScript pada Buku Tamu
Dan ternyata, code JavaScript saya dieksekusi:
Hasil Injeksi code JavaScript pada Buku Tamu
Bisa Anda bayangkan jika ada orang jahat yang menanam code JavaScript berbahaya yang dapat mencuri informasi sensitif user (cookies, csrf, etc..) di halaman ini. Dari sini kita bisa melihat adanya 2 celah keamanan pada Buku Tamu:
Tidak ada captha untuk melindungi buku tamu dari SPAMMER;
Tidak adanya sanitasi input dan output untuk mencegah orang jahat menginjeksikan malicious script;
LOCAL File Inclussion (LFI)
Saya memulai mencari kelemahan lain yang lebih serius. Saya menjumpai pemandangan menarik pada struktur URL website Pemerintah kabupaten Sidoarjo. Perhatikan struktur URL halaman “Informasi Kabupaten Sidoarjo” berikut:
http://www.sidoarjokab.go.id/main.php?content=selayang/geografis.html
Struktur URL Website Pemerintah Kabupaten Sidoarjo
main.php melewatkan path menuju file geografis.html yang terletak pada folder selayang/ melalui parameter content. Kira-kira difilter nggak yach parameternya? atau semua yang dimasukkan melalui parameter content ditangkap dan diinclude apa adanya? Saya mencoba melakukan include file /etc/passwd dengan memasukkan ../../../../../../../../../etc/paswd pada parameter content:
http://www.sidoarjokab.go.id/main.php?content=/etc/paswd
http://www.sidoarjokab.go.id/main.php?content=../../../../../../../../../etc/paswd
Dan hasilnya..
Meng-include /etc/passwd melalui parameter content
Sesuai dengan yang saya harapkan Isi file /etc/passwd yang berisi daftar user pada server ditampilkan pada area content ^^” Dari hasil penelusuran saya, ada7 file yang memiliki celah ini:
http://www.sidoarjokab.go.id/main.php?content=[evil code]
http://www.sidoarjokab.go.id/domain/dishub/index.php?content=[evil code]
http://www.sidoarjokab.go.id/other/SdaAngka/index.php?data=[evil code]
http://perijinan.sidoarjokab.go.id/main-content.php?load=[evil code]
http://www.sidoarjokab.go.id/other/p3a/index.php?lok=[evil code]
http://www.sidoarjokab.go.id/other/baz/index.php?content=[evil code]
http://www.sidoarjokab.go.id/other/warintek/index.php?cont=[evil code]
Lalu sekarang bagaimana? apa yang bisa kita lakukan dengan daftar user tersebut? Kita inject dengan shell sederhana yang digenerate melalui error log? atau.. bagimana?
Sudahlah, biarkan saja dulu. Mari kita tinggalkan celah ini dan mencari celah keamanan lain yang lebih menarik 😁
INSUFFICIENT Authentication
Saya menelusuri setiap halaman web sidoarjokab.go.id untuk mencari struktur URL menarik lainnya. Kali ini saya mengamati struktur URL berita:
Struktur URL berita sidoarjokab.go.id
Ada lokasi yang menarik perhatian saya disana, yaitu directory /inter/ dan directory /inter/news/. Ada apa di kedua lokasi tersebut? Saya memulai dengan mengunjungi directory paling ujung, yaitu /inter/news/
File-file "mencurigakan"
Saya langsung disuguhi daftar file yang mengundang rasa penasaran saya —> idih.. dari tadi isinya penasaran melulu ya.. ^^” Hmm.. kira-kira apa yach yang tampil kalau saya akses file-file tersebut..? Coba aja ah.. Saya mencoba mengakses file frm-vers_child.php
Form untuk input berita tidak dilindungi session
Wew! Saya merasa sangat bahagia saat menyadari bahwa file tersebut adalah form untuk menginputkan berita dan tidak dilindungi dengan session Yang lebih menyenangkan lagi, ada fasilitas file upload yang sepertinya tidak difilter Untuk memastikan dugaan saya, saya mengupload Web Shell menggunakan fasilitas file upload tersebut. Setelah proses upload selesai, saya memeriksa folder upload/
Web Shell berhasil diupload
YEY!!! file saya berhasil diupload! tuch, ada spyrozone.net.php Dengan semangat 45, saya memanggil file tersebut:
Web Shell gagal dijalankan
Yaah… gagal nich… T_T
Tapi.. Tunggu dulu…! saya teringat dengan celah LFI yang sudah ditemukan tadi Saya mencoba memanggil spy.php dengan memanfaatkan celah LFI tadi:
Memanfaatkan LFI untuk menjalankan Web Shell
Yey! Web Shell saya tampil dengan indahnya Sekarang, saya bisa menjelajahi webserver dan menjalankan perintah-perintah shell melalui Web Shell. Biasanya, attacker hanya memiliki kendali penuh atas suatu file pada directory yang memiliki file permission 777 saja. namun dalam kasus ini, kesalahan konfigurasi pada server menyebabkan attacker dengan mudah bisa melakukan pembuatan file baru, edit, dan menghapus file apapun yang diinginkan
Setelah melakukan penelusuran kembali, saya menemukan lokasi lain yang bisa dijadikan sebagai jalan bagi attacker untuk menanam web shell:
http://www.sidoarjokab.go.id/sub/bappeda/files/index.php
File Explorer
Saya menemukan file explorer lengkap dengan fungsi crete directory, upload file, delete dan download. Kemungkinan besar file ini ditujukan bagi pengelola area download BAPPEDA. namun, seperti yang Anda lihat, halaman ini tidak dilindungi dengan session sehingga memungkinkan orang jahat untuk menanam web shell.
UNENCRYPTED stored password
Saya mendapati file konfigurasi koneksi database terletak pada directory inter/config.inc
File konfigurasi koneksi database
Setelah melihat isi file tersebut menggunakan perintah cat, saya kemudian mengintip tabel yang berisi username dan password pengelola CMS. Ternyata, Admin membiarkan password-password tersebut “telanjang” —> idih.. lagi-lagi kata-kata favorit Anda muncul
Daftar username dan password pengguna CMS
Kini saya bisa masuk ke halaman Administrator dengan akun yang saya dapatkan:
Halaman Administrator sidoarjokab.go.id
Btw.. karena file koneksi databasenya disimpan dalam extensi .inc, saya jadi penasaran. Kira-kira, apakah akses menuju file .inc melalui browser sudah dicegah? Saya mencoba mengakses file config.inc melalui browser:
Akses terhadap file .inc melalui browser
Wah.. lagi-lagi celah keamanan. File config.inc menampilkan isi file apa adanya. Siapapun yang mengakses file tersebut bisa melihat username, password dan nama database website sidoarjokab.go.id
INSECURE Web Host
Pemerintah Kabupaten Sidoarjo menggunakan jasa web hosting dari PT. Data Utama Dinamika. Saya agak terdiam saat mengakses halaman /administrator/ website perusahaan tersebut:
http://www.datautama.net.id/administrator/
Bukan form login yang saya hadapi, tapi sebuah halaman yang berisi pesan Deface
Pesan Deface pada Website PT. Data Utama Dinamika
Wah, pesan Defacenya sama persis dengan pesan Deface pada Website Pemerintah kabupaten Sidoarjo. Pesan-pesan Deface lainnya ada di setiap sub directory website tersebut. Saya menelusuri directory-directory yang ada pada Robots.txt datautama.net.id
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /editor/
Disallow: /help/
Disallow: /images/
Disallow: /includes/
Disallow: /language/
Disallow: /mambots/
Disallow: /media/
Disallow: /modules/
Disallow: /templates/
Disallow: /installation/
Sepertinya sebelum beralih ke Flash, Data Utama Dinamika menggunakan Joomla Dari sini saya mulai punya dugaan lain. Jangan-jangan si Jester & Ghost61 ini mengambil alih webserver PT. Data Utama Dinamika terlebih dahulu sebelum memasuki portal sidoarjokab.go.id
Hmm.. entahlah, yang jelas, ini bisa menjadi kabar baik bagi Si Pembuat CMS Ternyata Anda bukan satu-satunya orang yang lalai dalam kasus ini ^^” penyedia hostingnya ajah sudah dimasuki Attacker, jadi wajar jika client-clientnya mengalami nasib serupa ^^”
NB: Mungkin celah atau bug di atas bisa di coba di website pemerintahan lainnya dan untuk Saat ini, celah-celah yang ada pada pembahasan ini ( web Pemkab Sidoarjo ) sudah ditutup sesuai dengan solusi yang telah saya bahas. Besar kemungkinan masih banyak celah lain pada portal Pemkab Sidoarjo yang belum masuk pada pembahasan saya.
Sebelumnya mohon maaf karna ada suatu hal dsb, tidak saya sertakan gambar ditutor ini.
Live target www.sidoarjokab.go.id
Sekitar akhir Mei 2010 lalu, saya mendapati banyak halaman website Pemerintah Kabupaten Sidoarjo (www.sidoarjokab.go.id) yang menampilkan pesan deface. Celahnya sendiri sudah ada sejak awal 2007. Saat itu sidoarjokab.go.id menggunakan jasa Solusindo Hosting sebelum beralih ke PT. Data Utama Dinamika.
Salah satu celah pada website ini sudah banyak dibicarakan di forum-forum underground (meski “hanya” sekedar info untuk melihat /etc/passwd) sejak awal tahun 2009. Yang membuat saya lebih prihatin, belum ada tindakan dari Administrator untuk melakukan perbaikan.
Saya kemudian memulai explorasi mencari jalan termudah bagi Attacker untuk masuk, celah-celah apa saja yang ada pada website tersebut, lalu melaporkannya kepada Admin dengan meninggalkan solusi pada file yang vulnerable di server Pemerintah Kabupaten Sidoarjo. Beberapa solusi yang saya sarankan telah diimplementasikan walaupun belum menyeluruh. Berikut catatan perjalanan saya dalam mencari celah pada website Pemerintah Kabupaten Sidoarjo yang dimanfaatkan oleh Attacker untuk melakukan pengrusakan dan menanam backdoor. Selamat menikmati 😁
Semua pesan deface yang saya jumpai meninggalkan nama dan alamat website yang sama.
Ada total 74 halaman yang diubah tampilannya oleh Jester:
http://www.sidoarjokab.go.id/domain/perpus/daftar_buku/buku_2006/index.php
http://www.sidoarjokab.go.id/ekonom/sembako/index.php
http://www.sidoarjokab.go.id/interaktif/agenda/index.php
http://www.sidoarjokab.go.id/interaktif/guestbook/harian/index.php
http://www.sidoarjokab.go.id/interaktif/guestbook/harian/index2.php
http://www.sidoarjokab.go.id/interaktif/guestbook/harian/indexi.php
http://www.sidoarjokab.go.id/interaktif/guestbook/index.php
http://www.sidoarjokab.go.id/interaktif/new/index.htm
http://www.sidoarjokab.go.id/interaktif/new/index.php
http://www.sidoarjokab.go.id/interaktif/new/index-news.php
http://www.sidoarjokab.go.id/interaktif/poling/index.php
http://www.sidoarjokab.go.id/other/baz/main.php
http://www.sidoarjokab.go.id/other/baz/main-bgBAZ2008.html
http://www.sidoarjokab.go.id/other/BlockGrand/default-menus.htm
http://www.sidoarjokab.go.id/other/BlockGrand/index-main.htm
http://www.sidoarjokab.go.id/other/dekranas/guest/index.php
http://www.sidoarjokab.go.id/other/warintek/index-.php
http://www.sidoarjokab.go.id/sub/bagianap/indexing.htm
http://www.sidoarjokab.go.id/sub/bkd/Berita/index.php
http://www.sidoarjokab.go.id/sub/bkd/Berita/index_asli.php
http://www.sidoarjokab.go.id/sub/bkd/Berita/index2.php
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/index.htm
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_access_denied.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_footer.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_footer2.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_forumgroup.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_forums.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_forums_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_forums_list.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_header.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_last_discuss_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_last_discussions.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_post_area.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_post_closed.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_post_form.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_posthold.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_posts.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_posts_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_topics.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_topics_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_topics_write.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_user_info.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_user_info_cell.html
http://www.sidoarjokab.go.id/sub/bkd/Berita/templates/main_warning.html
http://www.sidoarjokab.go.id/sub/bkd/forum/index2.php
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_access_denied.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_footer.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_footer2.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_forumgroup.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_forums.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_forums_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_forums_list.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_header.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_last_discuss_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_last_discussions.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_area.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_closed.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_area.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_closed.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_post_form.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_posthold.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_posts.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_posts_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_topics.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_topics_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_user_info.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_user_info_cell.html
http://www.sidoarjokab.go.id/sub/bkd/forum/templates/main_warning.html
http://www.sidoarjokab.go.id/sub/candi/default.htm
http://www.sidoarjokab.go.id/sub/gedangan/default.htm
http://www.sidoarjokab.go.id/sub/index.php
http://www.sidoarjokab.go.id/sub/krian/index.html
http://www.sidoarjokab.go.id/sub/main.php
http://www.sidoarjokab.go.id/sub/prambon/default.htm
http://www.sidoarjokab.go.id/sub/rsd/index.php
http://www.sidoarjokab.go.id/sub/tulangan/default.htm
Hingga kini halaman tersebut belum dibenahi oleh Admin. Mengenai defacernya sendiri, banyak yang menyebut si Jester & Ghost61 ini berasal dari Turki (http://www.google.co.id/search?q=Ghost61+Jester).
Bagaimana cara mereka masuk? dimana letak celah keamanannya? tidak usah tanya si Jester, Ghost 61, apalagi tanya Galileo, cukup lanjutkan membaca artikel ini 😁
HTML Injection
Celah pertama yang saya bahas ini pasti sudah sering Anda temui. Target exploitasi celah ini adalah layanan Buku Tamu sidoarjokab.go.id. Saya memasukkan code HTML berupa tag <h1> pada form Buku Tamu:
Injeksi code HTML pada Buku Tamu
Hasilnya, input saya tidak disanitasi sehingga identitas dan komentar saya tampil dalam ukuran heading 1:
Hasil Injeksi code HTML pada Buku Tamu
Saya kemudian mencoba memasukkan code JavaScript pada Buku Tamu:
Injeksi code JavaScript pada Buku Tamu
Dan ternyata, code JavaScript saya dieksekusi:
Hasil Injeksi code JavaScript pada Buku Tamu
Bisa Anda bayangkan jika ada orang jahat yang menanam code JavaScript berbahaya yang dapat mencuri informasi sensitif user (cookies, csrf, etc..) di halaman ini. Dari sini kita bisa melihat adanya 2 celah keamanan pada Buku Tamu:
Tidak ada captha untuk melindungi buku tamu dari SPAMMER;
Tidak adanya sanitasi input dan output untuk mencegah orang jahat menginjeksikan malicious script;
LOCAL File Inclussion (LFI)
Saya memulai mencari kelemahan lain yang lebih serius. Saya menjumpai pemandangan menarik pada struktur URL website Pemerintah kabupaten Sidoarjo. Perhatikan struktur URL halaman “Informasi Kabupaten Sidoarjo” berikut:
http://www.sidoarjokab.go.id/main.php?content=selayang/geografis.html
Struktur URL Website Pemerintah Kabupaten Sidoarjo
main.php melewatkan path menuju file geografis.html yang terletak pada folder selayang/ melalui parameter content. Kira-kira difilter nggak yach parameternya? atau semua yang dimasukkan melalui parameter content ditangkap dan diinclude apa adanya? Saya mencoba melakukan include file /etc/passwd dengan memasukkan ../../../../../../../../../etc/paswd pada parameter content:
http://www.sidoarjokab.go.id/main.php?content=/etc/paswd
http://www.sidoarjokab.go.id/main.php?content=../../../../../../../../../etc/paswd
Dan hasilnya..
Meng-include /etc/passwd melalui parameter content
Sesuai dengan yang saya harapkan Isi file /etc/passwd yang berisi daftar user pada server ditampilkan pada area content ^^” Dari hasil penelusuran saya, ada7 file yang memiliki celah ini:
http://www.sidoarjokab.go.id/main.php?content=[evil code]
http://www.sidoarjokab.go.id/domain/dishub/index.php?content=[evil code]
http://www.sidoarjokab.go.id/other/SdaAngka/index.php?data=[evil code]
http://perijinan.sidoarjokab.go.id/main-content.php?load=[evil code]
http://www.sidoarjokab.go.id/other/p3a/index.php?lok=[evil code]
http://www.sidoarjokab.go.id/other/baz/index.php?content=[evil code]
http://www.sidoarjokab.go.id/other/warintek/index.php?cont=[evil code]
Lalu sekarang bagaimana? apa yang bisa kita lakukan dengan daftar user tersebut? Kita inject dengan shell sederhana yang digenerate melalui error log? atau.. bagimana?
Sudahlah, biarkan saja dulu. Mari kita tinggalkan celah ini dan mencari celah keamanan lain yang lebih menarik 😁
INSUFFICIENT Authentication
Saya menelusuri setiap halaman web sidoarjokab.go.id untuk mencari struktur URL menarik lainnya. Kali ini saya mengamati struktur URL berita:
Struktur URL berita sidoarjokab.go.id
Ada lokasi yang menarik perhatian saya disana, yaitu directory /inter/ dan directory /inter/news/. Ada apa di kedua lokasi tersebut? Saya memulai dengan mengunjungi directory paling ujung, yaitu /inter/news/
File-file "mencurigakan"
Saya langsung disuguhi daftar file yang mengundang rasa penasaran saya —> idih.. dari tadi isinya penasaran melulu ya.. ^^” Hmm.. kira-kira apa yach yang tampil kalau saya akses file-file tersebut..? Coba aja ah.. Saya mencoba mengakses file frm-vers_child.php
Form untuk input berita tidak dilindungi session
Wew! Saya merasa sangat bahagia saat menyadari bahwa file tersebut adalah form untuk menginputkan berita dan tidak dilindungi dengan session Yang lebih menyenangkan lagi, ada fasilitas file upload yang sepertinya tidak difilter Untuk memastikan dugaan saya, saya mengupload Web Shell menggunakan fasilitas file upload tersebut. Setelah proses upload selesai, saya memeriksa folder upload/
Web Shell berhasil diupload
YEY!!! file saya berhasil diupload! tuch, ada spyrozone.net.php Dengan semangat 45, saya memanggil file tersebut:
Web Shell gagal dijalankan
Yaah… gagal nich… T_T
Tapi.. Tunggu dulu…! saya teringat dengan celah LFI yang sudah ditemukan tadi Saya mencoba memanggil spy.php dengan memanfaatkan celah LFI tadi:
Memanfaatkan LFI untuk menjalankan Web Shell
Yey! Web Shell saya tampil dengan indahnya Sekarang, saya bisa menjelajahi webserver dan menjalankan perintah-perintah shell melalui Web Shell. Biasanya, attacker hanya memiliki kendali penuh atas suatu file pada directory yang memiliki file permission 777 saja. namun dalam kasus ini, kesalahan konfigurasi pada server menyebabkan attacker dengan mudah bisa melakukan pembuatan file baru, edit, dan menghapus file apapun yang diinginkan
Setelah melakukan penelusuran kembali, saya menemukan lokasi lain yang bisa dijadikan sebagai jalan bagi attacker untuk menanam web shell:
http://www.sidoarjokab.go.id/sub/bappeda/files/index.php
File Explorer
Saya menemukan file explorer lengkap dengan fungsi crete directory, upload file, delete dan download. Kemungkinan besar file ini ditujukan bagi pengelola area download BAPPEDA. namun, seperti yang Anda lihat, halaman ini tidak dilindungi dengan session sehingga memungkinkan orang jahat untuk menanam web shell.
UNENCRYPTED stored password
Saya mendapati file konfigurasi koneksi database terletak pada directory inter/config.inc
File konfigurasi koneksi database
Setelah melihat isi file tersebut menggunakan perintah cat, saya kemudian mengintip tabel yang berisi username dan password pengelola CMS. Ternyata, Admin membiarkan password-password tersebut “telanjang” —> idih.. lagi-lagi kata-kata favorit Anda muncul
Daftar username dan password pengguna CMS
Kini saya bisa masuk ke halaman Administrator dengan akun yang saya dapatkan:
Halaman Administrator sidoarjokab.go.id
Btw.. karena file koneksi databasenya disimpan dalam extensi .inc, saya jadi penasaran. Kira-kira, apakah akses menuju file .inc melalui browser sudah dicegah? Saya mencoba mengakses file config.inc melalui browser:
Akses terhadap file .inc melalui browser
Wah.. lagi-lagi celah keamanan. File config.inc menampilkan isi file apa adanya. Siapapun yang mengakses file tersebut bisa melihat username, password dan nama database website sidoarjokab.go.id
INSECURE Web Host
Pemerintah Kabupaten Sidoarjo menggunakan jasa web hosting dari PT. Data Utama Dinamika. Saya agak terdiam saat mengakses halaman /administrator/ website perusahaan tersebut:
http://www.datautama.net.id/administrator/
Bukan form login yang saya hadapi, tapi sebuah halaman yang berisi pesan Deface
Pesan Deface pada Website PT. Data Utama Dinamika
Wah, pesan Defacenya sama persis dengan pesan Deface pada Website Pemerintah kabupaten Sidoarjo. Pesan-pesan Deface lainnya ada di setiap sub directory website tersebut. Saya menelusuri directory-directory yang ada pada Robots.txt datautama.net.id
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /editor/
Disallow: /help/
Disallow: /images/
Disallow: /includes/
Disallow: /language/
Disallow: /mambots/
Disallow: /media/
Disallow: /modules/
Disallow: /templates/
Disallow: /installation/
Sepertinya sebelum beralih ke Flash, Data Utama Dinamika menggunakan Joomla Dari sini saya mulai punya dugaan lain. Jangan-jangan si Jester & Ghost61 ini mengambil alih webserver PT. Data Utama Dinamika terlebih dahulu sebelum memasuki portal sidoarjokab.go.id
Hmm.. entahlah, yang jelas, ini bisa menjadi kabar baik bagi Si Pembuat CMS Ternyata Anda bukan satu-satunya orang yang lalai dalam kasus ini ^^” penyedia hostingnya ajah sudah dimasuki Attacker, jadi wajar jika client-clientnya mengalami nasib serupa ^^”
NB: Mungkin celah atau bug di atas bisa di coba di website pemerintahan lainnya dan untuk Saat ini, celah-celah yang ada pada pembahasan ini ( web Pemkab Sidoarjo ) sudah ditutup sesuai dengan solusi yang telah saya bahas. Besar kemungkinan masih banyak celah lain pada portal Pemkab Sidoarjo yang belum masuk pada pembahasan saya.
Post a Comment
Untuk menyisipkan kode pendek, gunakan <i rel="code"> ... KODE ... </i>
Untuk menyisipkan kode panjang, gunakan <i rel="pre"> ... KODE ... </i>
Untuk menyisipkan gambar, gunakan <i rel="image"> ... URL GAMBAR ... </i>