Scanning SQL Injection secara otomatis Scanning SQL Injection secara manual

6 Linux Distribution Disclosure Wikto server- status,200,apache ,This gives a lot of Apache information • Web server manual Web server manual ditemukan pada hasil scanning dengan menggunakan Nikto dan Wikto. Hasil dari kedua tool tersebut ditunjukkan pada Tabel 4. Tabel 4 Hasil scanning Nikto, dan Wikto Tool Hasil Keterangan Nikto OSVDB- 3092: manual: Web server manual found Directory yang berisi manual dari web server dapat ditemukan Wikto manual,200,gen eric,Web server manual • Directory indexing Directory indexing dari web server dapat diketahui dari hasil scanning menggunakan tool Nikto, Nessus, dan Wikto. Hasil scanning dari ketiga tool disajikan pada Tabel 5. Tabel 5 Hasil scanning Nikto, Nessus, dan Wikto yang menunjukkan adanya directory indexing Tool Hasil Keterangan Nikto + OSVDB- 3268: icons: Directory indexing is enabled: icons Directory icons yang berisi file default sebuah web server dapat ditemukan Wikto icons,200,apache Directory indexing dari ,Directory indexing is enabled web server di aktifkan sehingga file default web server dapat ditemukan Nessus Web Server Directory Enumeration Directory icons yang berisi file default sebuah web server dapat ditemukan • Terdapat kode program yang dapat di injeksi dengan script. Injeksi tersebut menggunakan teknik XSS. Scanning dilakukan dengan menggunakan tool Acunetix Web Vulnerability Scanner. Hasil scanning dapat dilihat pada Lampiran 1.

2.2 Scanning SQL Injection vulnerability

Scanning terhadap SQL injection dilakukan dengan dua cara, yaitu secara otomatis dan secara manual.

2.2.1 Scanning SQL Injection secara otomatis

Scanning secara otomatis dilakukan menggunakan tool Scrawlr dan Nessus. Hasil scanning menggunakan tool ini menunjukkan tidak adanya celah yang memungkinkan dilakukannya serangan SQL injection.

2.2.2 Scanning SQL Injection secara manual

Scanning secara manual dilakukan dengan memasukkan perintah sql pada URL di web browser. Perintah sql yang digunakan ditunjukkan pada Tabel 6. Perintah-perintah tersebut digunakan untuk mengetahui celah keamanan pada website yang tidak melakukan pemfilteran terhadap karakter-karakter SQL pada URL. Celah keamanan ini dapat dimanfaatkan hacker untuk mengetahui karakteristik dari database yang digunakan. Selain melakukan langkah-langkah pada Tabel 6, dilakukan juga penerobosan ke dalam halaman admin website menggunakan 7 teknik sql injection. Penerobosan dilakukan dengan memasukkan karakter- karakter pada Tabel 7. Karakter tersebut dimasukkan pada kotak isian username dan password yang terdapat pada halaman login administrator. Hasil scanning menggunakan langkah- langkah manual juga tidak menunjukkan adanya celah keamanan yang memungkinkan dilakukannya serangan sql injection. Hal tersebut dikarenakan pada halaman login administrator kotak isian username dan password telah diberi filter escape karakter. Kode program yang digunakan untuk melakukan filter adalah sebagai berikut. loginUsername=_POST[username]; password=_POST[password]; ................................ LoginRS__query=sprintfSELECT username, password, Nama, id_level FROM login WHERE username=s AND password=MD5s, get_magic_quotes_gpc ? loginUsername : addslashesloginUsername, get_magic_quotes_gpc ? password : addslashespassword; Kode program untuk memfilter escape karakter di tandai dengan cetak tebal pada kode program. Cara kerja kode program ini adalah menambahkan backslash \ pada karakter single quote dan double qoute . Penambahan karakter backslash \ sebelum karakter quote akan membuat string or 1=1-- akan tetap di proses or 1=1-- query SQL. Hal ini membuat serangan menggunakan teknik SQL Injection tidak bekerja. Filter lain yang diterapkan pada website juga turut melakukan filter terhadap URL. Filter tersebut adalah sebagai berikut. query_MenuM = SELECT FROM menu WHERE parent = . mysql_escape_stringparentID.; Kode program tersebut digunakan untuk memfilter parantID yang merupakan ID yang digunakan untuk menuju ke halaman lain yang berada pada website. Hasil lengkap dari scanning yang dilakukan oleh ketiga tool dapat dilihat pada Lampiran 2. Tabel 6 String yang dimasukkan pada web browser guna mengetahui celah SQL Injection pada website String Efek Hasil Pengujian http:targetindex.php?id=1 order by 10 memunculkan halaman yang benar jika terdapat tabel dengan 10 kolom. Jika tidak terdapat tabel dengan 10 kolom halaman yang akan ditampilkan adalah pesan error Unknown column ‘10 in order clause Halaman website akan memunculkan halaman dengan id 1 http:targetindex.php?id=null union all select 1,user,3,4,5 menampilkan database user. Halaman website akan memunculkan halaman eror http:targetindex.php?id=null union all select 1,2,database,4,5 menampilkan nama dari database. Halaman website akan memunculkan halaman eror http:targetindex.php?id=null union all select 1,version,datadir,4,5 menampilkan versi dari database yang digunakan version, dan database data direktori datadir Halaman website akan memunculkan halaman eror http:targetindex.php?id=66 AND 1=1-- menampilkan halaman yang benar Halaman website akan memunculkan halaman dengan id 66 http:targetindex.php?id=66 AND 1=2-- menampilkan halaman yang error jika terdapat celah sql injection Halaman website akan memunculkan halaman dengan id 66 http:targetindex.php? id=1;sleep+delay+0:0:5;-- membuat load halaman akan di delay selama 5 detik. Halaman website akan memunculkan halaman dengan id 1 dalam waktu yang normal 8

3. Penetration Test