laporan proyek akhir web database sql injection penetration … · 2020. 9. 1. · summary. final...
TRANSCRIPT
Laporan Proyek Akhir
Web Database Sql Injection Penetration Testing
Disusun oleh :
Nama : Deny Setiawan
NIM : 14.3.00016
Program Studi : TeknikInformatika
ProgramPendidikan : Diploma III
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
SINAR NUSANTARASURAKARTA
2017
Laporan Proyek Akhir
Laporan ini disusun guna memenuhi salah satu syarat untuk menyelesaikan
jenjang pendidikan Diploma III Pada STMIK Sinar Nusantara Surakarta
Disusun oleh :
Nama : Deny Setiawan
NIM : 14.3.00016
Program Studi : TeknikInformatika
ProgramPendidikan : Diploma III
SEKOLAH TINGGI MANAJEMEN INFORMATIKA DAN KOMPUTER
SINAR NUSANTARASURAKARTA
2017
I
MOTTO
Barang siapa keluar mencari ilmu maka dia berada di jalan Allah
Man JaddaWaJadda
Selalu ada Allah untuk orang yang bersabar
Tidak ada masalah yang tidak bisa diselesaikan selama ada komitmen
untuk menyelesaikannya
Ilmu pengetahuan tanpa agama lumpuh, agama tanpa ilmu pengetahuan
buta (Albert Einstein)
Perfectness is the first thing I always think when I do a job
V
PERSEMBAHAN
Karya ini kupersembahkan untuk :
Allah SWT yang senantiasa member kesabaran, kekuatan, kasih sayang,
dan kemudahan pada hamba-Nya.
Orang tua tercinta yang selalu memberikan semangat dan doa.
Kakak serta adik tercinta yang selalu mau menolong jika ada kesulitan.
Teman-teman komunitas peretas yang selalu memberikan dorongan di
saat-saat putus asa.
Teman-teman kelas TI D3 angkatan 2014
Para dosen dan pembimbing yang telah memberikan ilmu dan
pengetahuannya kepada semua mahasiswa.
Seluruh pihak yang ikut membantu dalam menyelesaikan penulisan tugas
akhir ini.
Vi
RINGKASAN
Laporan Proyek Akhir dengan judul “Web Database Sql Injection
Penetration Testing” ini telah dilaksanakan pada bulan September 2016 sampai
dengan Februari 2017.Tujuan Proyek Akhir ini adalah untuk melakukan penetrasi
testing pada website yang terdapat celah lubang keamanan.
Laporan Proyek Akhir ini disusun menggunakan metode pengumpulan
data.Serta metode observasi. Studi kepustakaan dilakukan dengan penelitian
kepustakaan yang relevan dengan masalah tersebut.
Hasil penelitian ini adalah aplikasi dapat menampilkan informasi
mengenai adanya celah atau bug pada web sehingga diharapkan membuat web
admin lebih waspada lagi terhadap serangan sql injeksi.
vii
SUMMARY
Final Project titled “Web Database Sql Injection Penetration Testing” has
been held on September 2016 until February 2017.The purpose of Final Project is
for doing penetration testing on website which has vulnerability.
Final Project is built using data collection methods abd observation
methods. Literature study conducted by the research literature relevant to the
issue.
The result of it is an application that can give information about web
vulnerability so that web administrator will be more aware to the sql injection
attacking.
viii
KATA PENGANTAR
Segala puji hanya milik Allah SWT, yang telah memberikan rahmat,
karunia, dan hidayah-Nya sehingga penulis dapat menyelesaikan Laporan Proyek
Akhir ini dengan judul “WEB DATABASE SQL INJECTION PENETRATION
TESTING”
Laporan Proyek Akhir ini merupakan salah satu syarat memperoleh gelar
Ahli Madya Komputer pada jurusan Teknik Informatika STMIK Sinar Nusantara
Surakarta.
Atas tersusunnya Laporan Proyek Akhir ini, penulis tidak lupa mengucapkan
terima kasih kepada :
1. Allah SWT
2. Ibu Kumaratih Sandradewi, S.P, M.Kom, selaku Ketua STMIK Sinar
Nusantara Surakarta
3. Bapak Hendro Wijayanto, M.Kom, selaku pembimbing.
4. Bapak Didik Nugroho, M.Kom, selaku Ketua Jurusan Teknik Informatika.
5. Orang tua penulis yang telah memberikan semangat, motivasi, dan doa saat
penelitian dan penyusunan Proyek Akhir ini
6. Teman-teman Teknik Informatika D3 angkatan 2014, yang telah memberikan
banyak bantuan kepada penulis
Penulis menyadari bahwa Laporan Proyek Akhir ini jauhdari kata sempurna,
oleh karena itu kritik dan saran yang membangun akan selalu penulis terima
dengan senanghati. Penulis berharap semoga Laporan Proyek Akhir ini dapat
bermanfaat bagi seluruh masyarakat.
Surakarta, Februari 2017
Penulis
DAFTAR ISI
HALAMAN JUDUL .................................................................................................i
HALAMAN PERNYATAAN ................................................................................ ii
HALAMAN PENGESAHAN ................................................................................ iii
HALAMAN PERSETUJUAN ................................................................................iv
HALAMAN MOTTO .............................................................................................. v
HALAMAN PERSEMBAHAN..............................................................................vi
HALAMAN RINGKASAN .................................................................................. vii
SUMMARY ......................................................................................................... viii
KATA PENGANTAR ............................................................................................ix
DAFTAR ISI ...........................................................................................................xi
DAFTAR GAMBAR ......................................................................................... xviii
DAFTAR TABEL .................................................................................................. xx
BAB I PENDAHULUAN
1.1 LatarBelakang ........................................................................................... 1
1.2 PerumusanMasalah ................................................................................... 2
1.3 PembatasanMasalah .................................................................................. 2
1.4 TujuanProyekAkhir.............................................................................. 3
1.5 ManfaatProyekAkhir............................................................................ 3
1.6 MetodePenelitian ................................................................................. 4
1.7 SistematikaPenulisan ........................................................................... 6
BAB II LANDASAN TEORI
2.1 Pengertian Aplikasi ............................................................................ 10
2.2 Xampp ................................................................................................ 10
2.2.1 Tujuan SQL Injection Pentesting ............................................. 13
2.3 Pengertian SQL Injection ................................................................... 14
2.4 FlowChart .......................................................................................... 15
BAB III TINJAUAN UMUM
3.1 SQL Injection ..................................................................................... 19
3.2 Protokol HTTP ................................................................................... 20
3.3 Algoritma SQL-Injection Free Secure ............................................... 20
3.4 Fitur System ....................................................................................... 22
3.4.1 Menerima HTTP Request dari Client ...................................... 22
3.4.2 Desain System………………………………………………..23
3.4.3 Mencegah Serangan SQL Injection ......................................... 25
3.4.4 Menerima HTTP Response dari Web Server .......................... 26
3.4.5 Implementasi ............................................................................ 27
3.5 Uji Coba Dan Evaluasi....................................................................... 30
3.6 Uji Coba Pendeteksian Serangan SQL Injection ............................... 31
3.6.1 Uji Coba Pencegahan Serangan SQl Injection……………...32
3.6.2 Uji Coba Penerimaan HTTP Response dari Web Server…...33
3.6.3 Uji Coba SQlMap…………………………………………...36
3.6.4 Uji Coba Performa…………………………………………..38
BAB IV IMPLEMENTASI
4.1 Perancangan Konsep .......................................................................... 45
4.2 Persiapan Pembuatan ......................................................................... 45
4.2.1 Tahap Pra Produksi .................................................................. 45
4.3 Perancangan Desain ........................................................................... 45
4.3.1 Desain Xampp ............................................................................ 46
4.3.2 Desain local webserver............................................................... 46
4.3.3 Desain tool pblind.py………………………………………….47
4.3.4 Desain tool sqlmap.py…………………………………………47
4.3.5 Desain tool dbpwaudit.sh……………………………………...48
4.3.6 Desain directory administrator………………………………...48
4.4 Tahap Proses Pentesting dan injeksi .................................................... 49
4.4.1 Cari Colomn yang memiliki celah injection…………………..54
4.4.2 Gunakan perintah union select………………………………...60
4.4.3 Asal usul angka ajaib dan fungsi perintah union select……….61
4.4.4 Cari informasi database target………………………………...63
4.4.5 Mendapatkan nama table……………………………………...67
4.5 Mendapatkan nama colomns…………………………………………68
4.6 Mendapatkan username dan password……………………………….69
4.7 Sql injection automatically dengan sqlmap.py……………………….71
4.7.1 AutoSqlMapping …………………………………………….75
4.7.2 AutoSqlMap-GUI …………………………………………..78
4.8 Tahap terakhir sql injeksi…………………………………………….79
4.9 Pencegahan Terhadap Serangan Sql Injection ………………………81
4.10 Pengujian Aplikasi ………………………………………………….82
BAB V PEMBAHASAN
5.1 Kesimpulan ........................................................................................... 90
5.2 Saran ..................................................................................................... 90
DAFTAR PUSTAKA
LAMPIRAN
79
4.8 Tahap terakhir sql injeksi
Setelah berhasil mendapatkan username dan password langkah selanjutnya adalah
mencari tahu letak direktori dari cpanel atau letak dari login admin.Penulis
menggunakan findadmin.pl yang di coding dengan menggunakan bahasa
pemrograman perl sehingga kita bisa menemukan letak direktori login yaitu:
Gambar 4.37 Tampilan Menu findadmin.pl
80
Gambar 4.38 Tampilan ketika melakukan bruteforce attack
http://localhost/injector/administrator/
Gambar 4.39 Tampilan Menu Administrator
81
Setelah login kita bisa melakukan apa saja.Kita bisa mengedit,menghapus atau
menambahi isi dari website tersebut.
4.9 Pencegahan terhadap serangan sql injection
Ada banyak cara untuk melakukan pencegahan terhadap adanya serangan
sql injection diantaranya dengan melakukan filtering pada parameter id.Penulis
akan membuat sebuah file php yang bertujuan mencegah adanya serangan sql
injection.File tersebut oleh penulis diberi nama cegah-sql.php.Ketika dimasukkan
ke file index utama maka secara otomatis attacker tidak bisa melakukan hacking
sql injection.
Gambar 4.40 Tampilan file cegah-sql.php
82
Gambar 4.41 Tampilan website yang sudah difiter
4.10 Pengujian Aplikasi
Pengujian berfungsi untuk melihat sejauh mana aplikasi berjalan.
Dalam pengujian ini penulis menggunakan teknik kuesioner. Dengan
teknik ini akan dilakukan evaluasi aplikasi sebelum dan sesudah uji coba
aplikasi pada responden.
Pengujian diberikan kepada 25 orang yaitu komunitas hacker atau
peretas, dengan pertanyaan sebagai berikut.
a. Apakah tampilan dari aplikasi ini menarik?
Jawaban:
83
TidakMenarik
KurangMenarik
CukupMenarik
Menarik
SangatMenarik
b. Apakah aplikasi ini mudah digunakan?
TidakMudah
SangatSulit
Sulit
CukupMudah
Mudah
SangatMudah
c. Apakah dengan aplikasi ini memudahkan Anda dalam
melakukan pengamanan celah sql injection?
SangatSulit
Sulit
CukupMudah
Mudah
SangatMudah
d. Apakah informasi dari aplikasi ini bermanfaat?
Tidak Bermanfaat
Kurang Bermafaat
Cukup Bermanfaat
84
Bermanfaat
Sangat Bermanfaat
e. Apakah keakuratan aplikasi ini sudah tepat?
Tidak Tepat
Kurang Tepat
Cukup Tepat
Tepat
Sangat Tepat
Berdasarkan kuesioner diatas, dicari hasil presentase masing-
masing jawaban dengan rumus:
A : Hasil Perhitungan
B. Banyaknya jawaban
C. Jumlah Responden
Berikut ini hasil perhitungan presentase yang diperoleh dari
penyebaran kuesioner terhadap 25 responden komunitas hacker.
1. Pengolahan untuk pertanyaan pertama
KategoriJawaban 1 2 3 4 5
Responden 0 0 11 14 0
Hasil 0 0 44% 56% 0
A = B/C * 100%
85
Tabel 4.1 Tabel Pengolahan Pertanyaan Pertama
Berdasarkan table diatas, dapat dilihat bahwa 50% responden
menyatakan bahwa tampilan aplikasi ini menarik, dan 45%
menyatakan cukup menarik.
2. Pengolahan untuk pertanyaan kedua
KategoriJawaban 1 2 3 4 5
Responden 0 0 9 11 5
Hasil 0 0 36% 44% 20%
Tabel 4.2 Tabel Pengolahan Pertanyaan Kedua
Dari table diatas, dapat dilihat bahwa 36% menyatakan bahwa
aplikasi mudah digunakan, 44% menyatakan cukup mudah digunakan,
dan 20% menyatakan sangat mudah digunakan.
3. Pengolahan untuk pertanyaan ketiga
KategoriJawaban 1 2 3 4 5
Responden 0 0 4 18 3
Hasil 0 0 16% 72% 12%
Tabel 4.3 Tabel Pengolahan Pertanyaan Ketiga
Dari table diatas dapat dilihat bahwa 16% menyatakan bahwa
dengan bantuan aplikasi ini memudahkan untuk mencari informasi,
72% menyatakan cukup memudahkan, dan 12% menyatakan sangat
memudahkan.
86
4. Pengolahanuntukpertanyaankeempat
KategoriJawaban 1 2 3 4 5
Responden 0 0 4 9 12
Hasil 0 0 16% 36% 48%
Tabel 4.4 Tabel Pengolahan Pertanyaan Keempat
Dari table diatas, dapat dilihat bahwa 16% menyatakan aplikasi
bermanfaat, 36% menyatakan cukup bermanfaat, dan 48%
menyatakan sangat bermanfaat.
5. Pengolahan untuk pertanyaan kelima
KategoriJawaban 1 2 3 4 5
Responden 0 0 4 12 9
Hasil 0 0 16% 48% 36%
Tabel 4.5 Tabel Pengolahan Pertanyaan Kelima
Dari table diatas, dapat dilihat bahwa 16% menyatakan posisi
lokasi dalam aplikasi akurat, 48% menyatakan cukup akurat, dan 36%
menyatakan sangat akurat.
87