Simple Penetration Testing in Django

Rizal Diantoro
Sulang
Published in
2 min readMay 3, 2018

Setelah sebelumnya kami melakukan Stress Test pada Suling Apps, kali ini kami akan mencoba untuk melakukan Simple Penetration Testing untuk membypass login screen. Cara yang akan saya coba lakukan adalah menggunakan SQL Injection.

Kita bahas sedikit mengenai teknis dari SQL Injection ini. Secara default, data username dan password yang kita masukkan pada halaman login akan dijalankan secara query pada database. Jika kita tidak melakukan enkapsulasi pada setiap input yang dimasukkan oleh user, bisa saja user akan memasukkan script yang merupakan script sql yang nantinya akan berjalan pada database.

' or 1

Anggaplah sistem yang kita buat akan menjalankan query seperti berikut ini

select * from user where username=$username and password=$password

Jika kita ingat lagi pelajaran MD ataupun DDP, yaitu jika sesuatu kita lakukan or dengan 1, pasti nilainya akan selalu bernilai True. Konsep dari sql injection yang paling sederhana ini adalah membuat query diatas berisi nilai OR 1.

Sekarang kita coba masukan data username sebagai ’ OR 1 dan password lalala. Maka query kita diatas akan menjadi seperti berikut:

select * from user where username='' OR 1 and password='lalala'

Nah query diatas akan bernilai 1 dan artinya akses yang diminta User diberikan oleh sistem.

Nah sekarang saya akan mencoba melakukan SQL Injection yang ada pada https://www.netsparker.com/blog/web-security/sql-injection-cheat-sheet/#ByPassingLoginScreens untuk melakukan Bypass Login Screen.

Tampilan Login Suling Apps

Percobaan pertama menggunakan admin` —

Percobaan kedua menggunakan admin' #

Percobaan ketiga menggunakan ' or 1=1--

Percobaan keempat menggunakan ') or ('1'='1--

Dari beberapa percobaan yang saya lakukan diatas, saya menyimpulkan bahwa sistem yang kami buat ini sudah menerapkan security dengan baik. Sehingga tidak dapat di bypass dengan SQL Injection biasa.

--

--