BAB 2 LANDASAN TEORI
2.1
Teori – teori Dasar / Umum 2.1.1
Model Open System Interconnection (OSI) Stack protocol OSI terdiri dari tujuh layer. Tabel 2.1 Model OSI Application Presentation Session Transport Network Data Link Physical
Menurut Larson (2000,p289-p290), physical layer merupakan media fisik dimana sinyal komunikasi sebenarnya dikirim. Media fisik dapat berupa coaxial, fiberoptic atau biasanya unshielded twisted pair (UTP) kabel tembaga. Media fisik menyediakan suatu protocol tertentu yang diizinkan untuk mengirim sinyal melaluinya. Layer selanjutnya adalah data link layer. Layer ini terdapat banyak protocol berbeda yang digunakan pada internet. Ethernet dan token ring adalah salah satu protocol pada data link layer. Layer ini yang mengontrol bagaimana mesin pada segmen jaringan yang sama berkomunikasi (terhubung ke hub atau switch yang sama, berbagi kabel coaxial yang sama, dan lain – lain). Perusahaan sering menggunakan variasi ini pada jaringan corporate. Departemen pemasaran dapat berjalan di Ethernet dan keuangan pada token ring. Yang memungkinkan mereka untuk saling berkomunikasi satu sama lain pada layer berikutnya.
7
8
Layer ketiga dari bawah merupakan network layer, atau IP layer pada stack internet protocol. IP itu sendiri kepanjangan dari Internet Protocol. Layer ini bertanggung jawab diantaranya pada pengalamatan bagaimana sebuah mesin (atau lebih spesifiknya, bagaimana interface pada sebuah mesin) kepada siapa sebuah pesan ditujukan. Hal ini dilakukan dengan alamat IP. Layer berikutnya, transport layer bertanggung jawab untuk penugasan bagaimana port logical sebuah pesan ditujukan untuk dan bagaimana port logical sebuah pesan berasal dari. Layer ini dimana TCP beroperasi. Protocol transport lainnya seperti UDP, beroperasi baik pula disini. Dua layer berikutnya pada model OSI yaitu session dan presentation, khususnya tergabung sebagai bagian dari layer berikutnya, layer application. Internet protocol tidak menggunakan layer ini, meskipun beberapa protocol layer application mungin membaginya lagi dalam sublayer serupa dengan layer session dan presentation. Sejak internet protocol menjadi perhatian utama, kami tidak akan fokus pada dua layer ini, dari pada untuk berkata bahwa layer ini mengatur konteks dan penerjemahan (tidak semua mesin berbicara dengan bahasa yang sama) untuk percakapan. Layer tertinggi merupakan layer application. Layer ini mendefinisikan metode komunikasi antara program web browser dan web server. Pada kasus web, protocolnya adalah HTTP. Client dan server email berkomunikasi menggunakan level aplikasi Simple Mail Transfer Protocol (SMTP). Protocol layer application yang mungkin diketahui File Transfer Protocol (FTP), Telnet, dan Post Office Protocol (POP).
2.1.2
Model Transmission Control Protocol/Internet Protocol (TCP/IP) Anonym(1995), TCP/IP mengacu pada serangkaian protocol data
komunikasi. TCP dan IP dibuat oleh U.S Department of Defense (DoD) pada tahun 1969. Pada tahun 1968, Advance Research Project Agency (ARPA)
9
memulai riset pada teknologi jaringan yang sekarang dikenal dengan packet switching. Mulanya riset ini berfokus pada bagaimana cara untuk memfasilitasi komunikasi antara komunitas dalam DoD. Jaringan yang telah dibangun sebagai hasil dari riset ini kemudian dikenal sebagai ARPANET, secara bertahap dikenal lagi sebagai internet. TCP/IP protocol memainkan peranan penting pada perkembangan internet. Pada awal 1980-an, protocol TCP/IP dikembangkan. Pada tahun 1983 TCP/IP menjadi protocol standar untuk ARPANET. TCP / IP Model : Tabel 2.2TCP/IP Model Layer Network Internet
Tugas Sebagai jalur untuk mengirimkan paket-paket IP antara host dengan network Menentukan format paket yang dikirimkan dan mengirimkannya melalui satu atau lebih jaringan yang terhubung.
Transport
Menerima data dari layer diatasnya, memecahnya menjadi unit-unit yang lebih kecil, lalu meneruskannya ke layer internet, dan memastikan bahwa semua bagian diterima dengan baik
Application
Menyediakan berbagai macam protocol yang biasa digunakan oleh user, misalnya HTTP.
2.1.3
HTTP / HTTPS Menurut Larson(2000,p19), Hypertext Transfer Protocol (HTTP) adalah
sebuah protocol yang memungkinkan web browser untuk berkomunikasi dengan server dalam pertukaran informasi. HTTP menyediakan sebuah cara standar untuk berkomunikasi antara browser dan web server, sehingga browser apapun dapat berkomunikasi dengan server apapun, asalkan keduanya sesuai dengan spesifikasi HTTP. Saat HTTP diakses, client memulainya dengan sebuah request dan direspon oleh server. Setiap request dan response memiliki 3 bagian yaitu request/status line, header fields/section dan entity body.
10
•
Request/status line. Pada baris ini berisi metode request, lokasi dokumen dan versi protocol.
•
Header fields/section. Serangkaian baris ini berisi header HTTP yang digunakan untuk menyampaikan informasi lain mengenai request dan client itu sendiri, ke server. Sebuah baris kosong kemudian memisahkan bagian header dari entity body.
•
Entity body. Pada bagian ini berisi data lainnya untuk diteruskan ke server. Biasanya informasi disini hanya ada ketika sebuah form dikirimkan. HTTPS adalah sebuah HTTP yang terbungkus dalam SSL. Bersama
dengan browser lainnya, Netscape dan Internet Explorer mendukung protocol HTTPS. Untuk menyediakan transaksi aman pada situs, biasanya akan butuh untuk mengkonfigurasi server HTTPS yang berjalan bersamaan dengan server HTTP normal. Baik server Netscape dan IIS keduanya menyediakan HTTPS support. Pada dasarnya Apache tidak mempunyai HTTPS support. Pengguna Apache harus mengunduh server SSL-enabled secara terpisah jika ingin menyediakan konten yang aman. Stonghold server adalah sebuah SSL komersial yang disempurnakan Apache Web Server. Ada juga patch yang tersedia untuk menambahkan fungsionalitas HTTPS pada Apache menggunakan SSLeay atau OpenSSL. Setelah SSL terpasang dengan benar pada server, cukup pilih resource yang akan dienkripsi dan hanya tersedia melalui HTTPS.
2.1.4
Client / Server Menurut Gralla(1999,p41), internet bekerja pada model informasi
client/server. Pada model ini, client komputer terhubung dengan server dimana informasi tersimpan. Client bergantung pada server untuk mengantarkan
11
informasi. Pada saat menggunakan internet, maka komputer terhubung dengan server dan mengirim request menggunakan sumber daya dari server. Secara tipikal, client adalah komputer lokal dan server (yang juga dikenal dengan host) biasanya merupakan suatu komputer powerful yang menyimpan data. Hubungan ke server dilakukan melalui Local Area network (LAN), sambungan kabel telepon, atau TCP/IP berbasis Wide Area Network (WAN) pada
internet.
Alasan
utama
membuat
jaringan
client/server
untuk
memungkinkan beberapa client yang berbeda dalam mengakses aplikasi dan file yang sama pada server. Pada kasus World Wide Web internet, client adalah browser pada PC dan server adalah host komputer yang berlokasi disuatu tempat pada internet. Browser mengirimkan server sebuah request, untuk halaman web yang spesifik. Server kemudian memproses request tersebut dan mengirim jawaban ke browser. Model client/server membuat PC desktop mampu menjalankan software browser untuk mencari web. Arsitektur ini membuat web menjadi tempat penyimpanan dan database yang tak terbatas, terdistribusi diantara ratusan komputer host, semua dapat diakses oleh sebuah PC client.
2.1.5 URL Menurut McClure(2003,p139), pada web hacking, URL merupakan celah masuk pada web untuk berkomunikasi dengan sistem yang besar dan kompleks di balik firewall. •
Struktur URL URL merupakan sebuah mekanisme untuk mengenali sumber-sumber
pada web, SSL, atau server FTP, termasuk protocol layer aplikasi yang membuat request ke server web.
12
Struktur umum URL adalah : Protocol : //server/path/to/resource?parameters Komponen-komponen URL : 1. Protocol : Protocol lapisan aplikasi. Kegunaan URL yang paling umum adalah meminta sumber-sumber dari web server (server HTTP). Karena itu protocol yang paling umum adalah http:. Protocol lainnya adalah https:, ftp:, ldap;, telnet:, pop3:, dan seterusnya, tergantung dukungan server dan browser yang dipakai. 2. Server : Nama DNS, nama Netbios, alamat IP dari sebuah host atau jaringan yang menjadi host sumber yang diminta. 3. Path/to/resource : Direktori path, termasuk nama sumber yang diminta. Sumber bisa dalam bentuk file statis atau sebuah aplikasi yang secara dinamis menghasilkan output. 4. Parameter : Secara optional, parameter dapat dilewatkan ke sumber bila sebuah aplikasi atau sebuah program yang secara dinamis menghasilkan output. Kadang kala bagian URL yang mengkhususkan parameter disebut juga Query String.
2.1.6 Apache Menurut Larson(2000,p123), situs web Apache (http://www.Apache.org) menjelaskan bahwa proyek Apache sebagai “upaya pengembangan perangkat lunak kerjasama yang bertujuan untuk menciptakan sebuah source code yang commercial-grade, featureful, dan tersedia bebas untuk diimplementasi pada HTTP (web) server”. Sejak 1995, sekelompok relawan dari seluruh dunia yang dikenal sebagai kelompok Apache telah mengembangkan web server yang paling banyak didukung. Awalnya berdasarkan pada NCSA HTTPD, Apache telah berkembang menjadi salah satu web server terkuat yang ada. Keberhasilan Apache tidak hanya dikarenakan fitur – fiturnya, tetapi juga harganya. Apache
13
adalah sebuah proyek open source dan perangkat lunak bebas bagi siapa saja untuk menggunakan, memodifikasi, atau mendistribusikannya. Apache dipilih karena beberapa alasan: •
Apache gratis dan open source.
•
Tidak diwajibkan untuk membeli sebuah sistem operasi (dapat berjalan dengan baik juga pada Windows).
•
Support dari banyak perusahaan (meskipun bukan dari pengembang Apache).
2.1.7
PHP Anonym(2011), PHP adalah bahasa HTML-embedded scripting. Berfokus
pada server-side scripting. Syntax diambil dari C, Java dan Perl
dengan
beberapa fitur PHP yang unik didalamnya. Tujuan dari bahasa ini untuk memudahkan web developer dalam menulis halaman dinamis secara cepat. Karena PHP berfokus pada server-side scripting, maka dapat dilakukan berbagai macam CGI program, seperti pengumpulan form data, menghasilkan isi halaman dinamis, atau mengirim dan menerima cookies. Ada tiga area utama yang digunakan oleh PHP : •
Server-side scripting. Perlu tiga hal untuk menjalankannya. PHP parser (CGI atau modul server), web server dan web browser. Web server harus dijalankan dengan PHP yang sudah terinstalasi. Output dari program PHP dapat diakses dengan web browser.
•
Command line scripting. PHP script dapat berjalan tanpa server ataupun browser. Tipe ini biasanya menggunakan cron (pada Linux) atau Task Scheduler (pada Windows). Script ini juga dapat digunakan untuk text processing task yang sederhana.
14
•
Writing desktop application. Dengan menggunakan beberapa fitur tambahan pada aplikasi client-side, seperti PHP-GTK maka dapat dilakukan pembuatan aplikasi cross-platform.
PHP dapat digunakan pada berbagai macam sistem operasi, seperti Linux, berbagai varian Unix (termasuk HP-UX, Solaris, dan OpenBSD), Microsoft Windows, Mac OS X, dan RISC OS. PHP juga dapat berjalan pada beberapa web server, seperti Apache, dan IIS.
2.1.8
Footprinting Menurut McClure (2003,p10), footprinting merupakan suatu metode yang
menggunakan kombinasi antara tools dan teknik untuk mengumpulkan informasi target yang ingin diserang. Seorang penyerang akan mengumpulkan sebanyakbanyaknya informasi yang ada mengenai semua aspek dari organisasi tersebut. Meskipun banyak teknik footprinting, tetapi mereka akan menggali terlebih dahulu mengenai internet, intranet, remote access, dan extranet. Langkah-langkah dalam melakukan footprinting : Step 1 : menentukan jangkauan aktivitas Langkah pertama ini untuk menentukan jangkauan aktivitas footprinting yang ingin dilakukan, apakah itu footprint mengenai seluruh informasi organisasi tersebut, atau membatasi aktivitas untuk informasi yang lebih spesifik. Step 2 : network enumeration Pada
network
enumeration
proses
merupakan
langkah
untuk
mengidentifikasi nama domain dan jaringan terkait yang berhubungan dengan organisasi tertentu. Step 3 : menginterogasi DNS
15
Setelah
mengidentifikasi
semua
domain
terkait,
kemudian
bisa
dilanjutkan pada query DNS. DNS mendistribusikan database yang digunakan untuk memetakan IP address pada host name, dan sebaliknya. Jika DNS tidak terkonfigurasi dengan aman, sangat mungkin untuk mendapatkan informasiinformasi mengenai organisasi yang ingin di footprint. Salah satu kesalahan serius adalah tidak mengkonfigurasi sebuah sistem administrator yang membuat pengguna internet yang kurang dipercaya untuk menampilkan daerah DNS transfer. Daerah transfer mengizinkan server kedua meng-update daerah database dari master utama. Step 4 : mengintai jaringan Pada langkah ini adalah menentukan topologi jaringan target yang berpotensi dengan mudah diakses. Pengintaian jaringan ini juga sering disebut Tracerouting. Traceroute adalah tools yang diciptakan oleh Van Jacobson, untuk melihat rute sebuah paket IP yang diikuti dari satu host ke host lain.
2.1.9
Tools yang Digunakan 2.1.9.1 Havij Anonym(2011), Havij adalah alat SQL Injection otomatis yang membantu tester penetrasi untuk menemukan dan mengeksploitasi kerentanan SQL Injection di halaman web. Havij dapat memanfaatkan kerentanan dari web tersebut. Dengan menggunakan software ini pengguna dapat mengambil data DBMS, hash password, dump tabel dan kolom, serta menjalankan pernyataan SQL. Kekuatan Havij yang membuatnya berbeda dari tools semacam itu adalah metode injeksinya. Tingkat keberhasilan lebih dari 95% pada target yang rentan terhadap injeksi menggunakan Havij. Graphical User Interface (GUI) yang user friendly pada Havij dan pengaturan otomatis
16
dalam pendeteksian membuatnya mudah digunakan bagi semua orang bahkan pengguna awam.
2.1.9.2 TOR Anonym(2012), TOR
adalah suatu terowongan virtual pada
jaringan yang memungkinkan untuk meningkatkan privasi dan keamanan dalam menggunakan internet. TOR dapat menghindari traffic analysis yang digunakan untuk mengetahui komunikasi pada jaringan publik. Jika sumber dan tujuan pada lalu lintas internet telah diketahui, maka akan memudahkan orang lain untuk melacak kebiasaan dan lokasi user.
o Cara Kerja Traffic Analysis: Paket data internet terdiri dari dua bagian, data payload dan header yang digunakan untuk routing. Data payload adalah sesuatu yang dikirim, baik email, halaman web, atau file suara.Walaupun data payload telah dienkripsi pada saat komunikasi berlangsung, traffic analysis tetap dapat mengetahui apa yang dilakukan pengirim karena ia melihat header yang mencantumkan informasi berupa sumber, tujuan, ukuran, waktu dan lain sebagainya. Penyerang
melacak
beberapa
bagian
pada
internet
dan
menggunakan teknik statistik yang rumit untuk mengetahui pola komunikasi dari organisasi atau individu yang berbeda. Enkripsi tidak membantu
dalam
menghadapi
para
penyerang
karena
disembunyikan adalah isi pada lalu lintas internet, bukan headernya.
yang
17
Gambar 2.1 Cara kerja TOR I TOR mengurangi resiko traffic analysis dengan mendistribusikan transaksi melalui beberapa tempat di internet, sehingga tidak ada single point yang menunjuk pada tujuan. Dengan ini maka akan menyulitkan orang yang mengikuti rute dan secara periodik akan menghapus jejak yang ada. TOR tidak mengambil rute langsung dari sumber ke tujuan, melainkan paket data pada jaringan TOR menggunakan jalur acak melalui beberapa relay yang akan menutupi jejak, sehingga asal dan tujuan data akan sulit untuk diketahui oleh penyusup. Untuk membuat jalur jaringan pribadi dengan TOR, software dari user atau client secara bertahap membuat suatu sirkuit yang dienkripsi pada jaringan. Sirkuit tersebut menjangkau satu lompatan pada satu waktu, dan hanya masing-masing relay yang mengetahui darimana dan kemana data akan dikirimkan. Tidak ada relay yang mengetahui jalur lengkap pengambilan data tersebut. Client menggunakan kunci enkripsi yang terpisah pada masing-masing lompatan sepanjang sirkuit untuk memastikan setiap lompatan tidak bisa melacak koneksi saat dilalui.
18
Gambar 2.2 Cara kerja TOR II Sekali sirkuit telah dibuat, maka ada beragam data yang dapat dipertukarkan, karena setiap relay tidak dapat melihat lebih dari satu lompatan pada sirkuit, sehingga tidak ada relay yang dapat digunakan untuk traffic analysis dalam menghubungi sumber dan tujuan dari koneksi. TOR hanya bekerja pada arus TCP. Untuk efisiensi, software TOR menggunakan sirkuit yang sama untuk koneksi selama 10 menit atau lebih. Kemudian, request akan diberikan sebuah sirkuit baru untuk menghindar dari linking terhadap aksi yang dilakukan sebelumnya.
19
Gambar 2.3 Cara kerja TOR III 2.2
Teori – teori Khusus yang Berhubungan dengan Topik yang Dibahas 2.2.1 Serangan SQL Injection Anonym(2010), SQL Injection distandarisasi oleh ANSI dan melayani bahasa secara umum untuk berkomunikasi dengan database. Setiap sistem database menambahkan beberapa fitur kepemilikan untuk dasar ANSI SQL. SQL Injection adalah suatu serangan yang terdiri dari penyisipan atau “injection” query SQL melalui input data dari client ke aplikasi. SQL Injection yang berhasil dilakukan akan membaca data sensitif dari database, memodifikasi isi database (insert, select, update) dan mengeksekusi operasi administrasi database (seperti shutdown DBMS). Serangan SQL Injection adalah serangan yang bertipe injeksi, dimana perintah SQL di inject pada data input untuk mendapatkan hasil dari perintah SQL yang telah dibuat.
20
Model Ancaman: •
SQL Injection memungkinkan penyerang untuk mengambil identitas, merusak data, juga menyebabkan kegagalan transaksi atau mengubah isi saldo, serta memungkinkan untuk membuka seluruh data pada sistem, menghancurkan data atau membuat data tersebut tidak tersedia, dan juga menjadi administrator dari server database.
•
SQL Injection sangat umum terjadi pada PHP dan ASP.
•
Kekuatan dari serangan SQL Injection terbatas pada kemampuan penyerangnya, dan untuk mengurangi serangannya, maka pertahanan terhadap SQL Injection perlu dilakukan, karena SQL Injection akan mengakibatkan
dampak
yang
sangat
besar
jika
berhasil
diimplementasikan.
Testing Query SQL Injection Langkah pertama pada test ini adalah memahami kapan aplikasi terhubung dengan database untuk mengakses beberapa data. Contoh dari hubungan antara aplikasi dengan database adalah : •
Form autentikasi : saat autentikasi dilakukan dengan menggunakan web form, kemungkinan pengecekan user akan dilakukan terhadap database yang berisi seluruh username dan password.
•
Search engine : string yang dimasukkan oleh user dapat digunakan pada query SQL yang mengekstrak seluruh isi database yang ada.
•
Situs e-commerce : produk dan karakteristiknya (harga, deskripsi, ketersediaan barang dan lain sebagainya) selalu disimpan pada database relasional.
21
Tester harus membuat daftar dari seluruh field input yang memiliki kemungkinan untuk membuat query SQL, termasuk field tersembunyi pada POST request, lalu mengujinya secara terpisah, dan menambahkan query untuk menciptakan error. Testing yang pertama dilakukan adalah dengan menambahkan tanda kutip satu (‘) atau titik koma (;) pada field yang diuji. Kutip satu digunakan pada SQL sebagai string pemisah dan jika tidak di filter oleh aplikasi maka akan memunculkan query yang salah. Titik koma digunakan untuk mengakhiri statement SQL dan jika tidak di filter, maka hasilnya juga akan membuat suatu error. Serta, comment (--) dan keyword SQL lainnya seperti ‘AND’ dan ‘OR’ dapat digunakan untuk memodifikasi query. Hal yang sederhana, namun terkadang masih menjadi teknik yang efektif untuk memasukkan string, dimana membutuhkan sejumlah tabel dan kolom pada saat error terjadi. Suatu pesan error akan menyediakan informasi yang dibutuhkan oleh tester. 1. Standar Testing SQL Injection Perhatikan query berikut :
SELECT * FROM Users WHERE Username='$username' AND Password='$password'
Gambar 2.4 Query SQL I
Query tersebut biasanya digunakan untuk mengautentikasi user. Jika query mengembalikan nilai maka data user ada didalam database, dan user dapat melakukan login kedalam sistem. Nilai dari input biasanya diperoleh dari user melalui web form. Jika dimasukkan nilai username dan password seperti berikut ini :
22 $username = 1' or '1' = '1 $password = 1' or '1' = '1
Gambar 2.5 Nilai Input dari Web Form
Query akan menjadi seperti :
SELECT * FROM Users WHERE Username='1' OR '1' = '1' AND Password='1' OR '1' = '1'
Gambar 2.6 Query Saat diserang SQL Injection
Jika nilai parameter dikirimkan ke server melalui GET method, dan
nama
domain
dari
web
yang
rentan
adalah
www.example.com, maka request yang dilakukan akan menjadi :
http://www.example.com/index.php?username=1'%20or%20'1'%20=%20'1&passwo rd=1'%20or%20'1'%20=%20'1
Gambar 2.7 URL Metode GET
Setelah
analisis
singkat,
maka
akan
terlihat
bahwa
query
mengembalikan suatu nilai (atau mengeset nilai) karena kondisinya selalu true (OR 1=1). Dengan cara ini sistem melakukan autentikasi user tanpa mengetahui isi dari username dan password. 2. Testing Query Union pada SQL Injection Testing lain yang dilakukan melibatkan penggunan dari operator UNION. Operator ini digunakan pada SQL Injection untuk menggabungkan suatu query, biasanya ditiru oleh tester agar sesuai
23
dengan query asli. Hasil dari query tiruan akan digabung dengan hasil dari query asli, yang memungkinkan tester untuk mendapatkan nilai dari tabel lainnya. Sebagai contoh, diperkirakan query yang dieksekusi oleh server sebagai berikut :
SELECT Name, Phone, Address FROM Users WHERE Id=$id
Gambar 2.8 Query SQL II
Nilai id yang akan di set adalah :
$id=1 UNION ALL SELECT creditCardNumber,1,1 FROM CreditCarTable
Gambar 2.9 Set id
Maka query yang akan dibuat adalah :
SELECT Name, Phone, Address FROM Users WHERE Id=1 UNION ALL SELECT creditCardNumber,1,1 FROM CreditCarTable
Gambar 2.10 Query SQL dengan Set id
Dimana akan menggabungkan hasil dari query asli dengan seluruh user credit card. Keyword ALL sangat penting untuk mendapatkan query yang menggunakan keyword DISTINCT. Dari antara jumlah credit card, dipilih dua nilai lainnya. Kedua nilai tersebut sangat penting karena kedua query tersebut memiliki nilai sama dengan jumlah parameter, untuk menghindari syntax error.
24
3. Blind SQL Injection Blind SQL Injection merupakan salah satu kategori dari SQL Injection, dimana tidak ada yang diketahui sebagai hasil dari suatu operasi. Hal ini terjadi pada saat programmer membuat suatu halaman error yang tidak menunjukkan apapun dari struktur query atau database (halaman tidak mengembalikan error pada SQL atau hanya mengembalikan HTTP 500). Dengan menggunakan metode perkiraan, maka ada kemungkinan untuk mengatasi hambatan ini. Metode ini terdiri dari mengeksekusi nilai Boolean query ke server, mengamati jawabannya dan pada akhirnya melakukan deduksi terhadap arti dari jawaban itu. Misalnya www.example.com berisi parameter yang rentan terhadap SQL Injection, yaitu pada parameter id. Maka request yang akan dieksekusi adalah :
http://www.example.com/index.php?id=1'
Gambar 2.11 Cek Vulnerable Blind SQL Injection
Akan didapatkan suatu halaman yang berisi pesan error syntactic pada query. Anggapannya, query yang dieksekusi pada server adalah :
SELECT field1, field2, field3 FROM Users WHERE Id='$Id'
Gambar 2.12 Query Blind SQL Injection
Yang bisa di exploit dengan menggunakan metode yang telah dibahas sebelumnya. Yang ingin didapatkan adalah nilai dari username. Maka, testing yang dilakukan akan memungkinkan
25
untuk memperoleh nilai dari username field dengan mengekstrak nilai karakter satu per satu. Blind SQL memerlukan jumlah query yang cukup besar. Tester perlu untuk menggunakan tools yang secara otomatis dapat mengecek kerentanan dari web.