Posted By: Al-k
PHP Security - Cek Bug PHP Script
28-03-2008 | 15:24:58 | Halaman Ini dibaca 22335 kali
 Setelah
terampungkan script php yang telah kita buat ada kalanya bug-bug
yang tidak diinginkan bercokol di sela-sela script yang telah
siap dionlinekan. Dan tentunya bug ini bisa berakibat fatal sehingga
dapat dimanfaatkan oleh para intruder-intruder yang berusaha
untuk mengekploitasi system. Dan siapa sangka script php yang telah dibuat itu aman dari kerentanan dalam masalah security. :D~~~ Lalu,
bagaimana mencegah sang hacker mengekploitasi, bahkan merusak
website anda, bagaimana mencegah secara pasti dan mengetahui
script yang telah dibuat memiliki bug yang fatal, bagaimana menangani
itu semua ?? :D Sebelum kita beralih maju ke langkah selanjutnya ada baiknya untuk mengenali bug popular yang paling sering diexploitasi.
Penulis
akan mencoba untuk memberikan sedikit penjelasan, bug yang sering
dijumpai dalam aplikasi berbasis web khususnya Content Management
system maupun yang lainnya. Di antaranya : - XSS ( Cross Site Scripting ) - SQL Injection - RFI ( Remote File Inclusion ) Cross Site Scriping Lebih dikenal dengan sebutan XSS. Kesalahan ini terjadi karena tidak adanya filtering pada html maupun java script. Tetapi
pada dasarnya defacing ( perubahan kontent ) hanya terjadi disisi
client saja. Yang paling fatal dari bug ini adalah anda dapat
mencuri cookie kemudian menggunakannya untuk berbuat
sesuatu yang ... :D~~ Contohnya : Sensored [ maaf ]
SQL Injection SQL
Injection sebenarnya terjadi karena seorang attacker yang mencoba
melakukan inject query sql melalui form ataupun via address
bar pada browser internet. Sebagai contohnya ketika penulis
mencoba login sebagai admin pada situs pemerintah Sumatra Selatan
( http://www.sumsel.go.id ). Dengan menggunakan query ' or
1=1-- penulis pun berhasil login. Pada dasarnya ' atau single
quote dan or 1=1-- itu berfungsi untuk membingungkan si server
sql, sehingga yang dilakukan oleh server sql adalah menjalankan
query " select * ". Yang terjadi adalah penulis diloloskan untuk
login sebagai admin. Berikut adalah gambar yang penulis capture ketika penulis berhasil login sebagai admin pada situs http://www.sumsel.go.id
Gambar ini diambil sebelum penulis mengontak webmaster via email untuk mempatch script phpnya. RFI ( Remote File Inclusion ) Sebelumnya silahkan membaca artikel fungsi require, require_once, include, dan include_one
RFI sendiri terjadi karena kesalahan programmer ketika melakukan
coding, yakni menggunakan variable dalam fungsi-fungsi tersebut.
Apabila user memasukkan url evil script miliknya pada variable yang
digunakan dalam fungsi require ataupun include, yang terjadi
adalah evil script tersebut dapat dieksekusi secara remote,
dengan kata lain, attacker dapat menjalan command di server milik
anda untuk merubah konten situs atau bahkan merusaknya. :D~~
Untuk contohnya silahkan anda cari di www.milw0rm.com :D~
Keywordnya Remote File Inclusion. :D~ Pengecekan BUG Pengecekan
bug sendiri bisa dilakukan secara manual. Hmmm ... tentunya ini
akan memakan banyak waktu. Terbentuklah tools yang dapat secara
cepat dan otomatis menemukan bug-bug yang terselip di php script
secara tidak sengaja maupun sengaja. :D~ Pada
dasarnya untuk mengecek bug dapat dilakukan secara online maupun
offline. Penulis sarankan pengecekan bug ini dilakukan di
localhost anda ( offline ) saja. Cek Bug XSS Tools
untuk mengecek XSS pada script php milik anda adalah sebuah
addons mozilla firefox yang disediakan secara gratis.
Penginstallannya pun tergolong mudah, berikut juga cara penggunaannya. Tools tersebut dapat anda download disini : http://www.securitycompass.com/exploit_me/xssme/xssme-0.2.1.xpi Cek Bug SQL Injection Untuk
periode saat ini defacing dengan SQL Injection digolongkan paling
favorit dan tentunya paling banyak digunakan, mungkin karena
penyerangan yang dilakukan cukup mudah, cukup memiliki dasar
pengetahuan syntax sql. Lagi-lagi sebuah addons mozilla firefox
yang cukup ampuh dan mudah digunakan telah disediakan untuk
melakukan cek bug sql injection. :D Anda dapat mendownloadnya disini : http://www.securitycompass.com/exploit_me/sqlime/sqlime-0.2.xpi
Penggunaanya pun tidak terlalu sulit.
Cek BUG Remote File Inclusion Sebelumya anda download terlebih dahulu scriptnya disini http://www.newhack.org/dl_jump.php?id Setelah
itu silahkan download active perl, compiler interpreter ini
nantinya digunakan untuk menjalankan script inclusionscanner.pl. Dan kemudian copykan inclusionscanner.pl tersebut ke direktori c:\perl\bin
Langkah selanjutnya :
1. Masukkan script yang akan anda scan kedalam sebuah direktori di c:\perl php.
ex : c:\perl\wordpress.
2. Masuk ke command prompt, start | run | cmd | enter
3. Setelah itu masuk ke direktory c:\perl\bin, cd c:\perl\bin
4. Jalankan scriptnya,
C:\Perl\bin>perl.exe inclusionscanner.pl
#Will check a directory for all includes and unsets
#Coded by Ironfist (ironsecurity.nl)
#Usage: create a folder in your perlfolder and put the files to be scanned in it
, next type the folder name below (eg myfolder) #GIVES ERRORS WHEN CHECKING SUBFOLDERS: IGNORE THEM :) Directory to read? c:\perl\wp kemudian lihat hasilnya di c:\perl\bin\result.html berikut hasil scan ketika penulis mencoba untuk melakukan cek inclusion pada wordpress-2.3.3 : FOUND: require_once($locale_file); in c:\perl\wp/wp-settings.php FOUND: require_once($import_root . '/' . $file); in c:\perl\wp/wp-admin/import.php FOUND: include_once($this->PluginDir . "class-smtp.php"); in c:\perl\wp/wp-includes/class-phpmailer.php FOUND: include($lang_path.'phpmailer.lang-'.$lang_type.'.php'); in c:\perl\wp/wp-includes/class-phpmailer.php FOUND: include($lang_path.'phpmailer.lang-en.php'); in c:\perl\wp/wp-includes/class-phpmailer.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: include($template); in c:\perl\wp/wp-includes/template-loader.php FOUND: require_once($_template_file); in c:\perl\wp/wp-includes/theme.php
woww !!! :D~~ silahkan di exploitasi eh di patch script milik anda. :D~~
Ingat,
jangan merusak, jangan berbuat vandal, jika anda menemukan bug di
situs lain seperti yang telah saya sebutkan diatas, silahkan
beritahu pihak admin.greetz to : ilmuwebsite staff, member ilmuwebsite,
special for jojo and her baby. Tutorial Jaringan Komputer |