Suling Penetration Test

Fachrur Rozi
Sulang
Published in
2 min readMay 16, 2018

Kali ini saya akan membahas terkait beberapa contoh panetration test pada aplikasi suling yang dibangun di atas framework Django dan library ReactJs

Penetration test adalah tes yang melakukan sejumlah simulasi attack terhadap kemanaan aplikasi yang telah dibuat. Tes ini dilakukan untuk mengevaluasi keamanan system dan mencari celah-celah yang mungkin ada pada aplikasi.

Penerapan panetration test yang umum dilakukan adalah SQL Injection. SQL Injection adalah peletakan kode yang berbahaya kedalam sql query. Bagaimana kita dapat memasukkan kode kedalam sql query?
Perhatikan simulasi berikut

Untuk mendapatkan informasi user melalui database dengan memasukkan input username, backend perlu melakukan kueri dengan skema

txtSQL = "SELECT * FROM Users WHERE username= " + txtUsername;
process_sql(textSQL)

Value dari txtUsername itu bisa didapatkan melalui form yang ditampilkan kepada user dihalaman web.

untuk melakukan injeksi kode terhadap kueri tersebut, user bisa memanipulasi form dengan mengisi nilai “abc OR 1=1”

textSql akan menjadi:

SELECT * FROM Users WHERE username = abc OR 1=1;

kueri tersebut akan menampilkan daftar semua user karena akan selalu bernilai true untuk setiap row yang di proses.

Bagaimana cara kita mengatasi hal tersebut?

Teknologi framework saat ini umumnya sudah sadar akan keberadaan celah ini, dan cara mengatasi hal tersebut biasanya menggunakan ORM (Object Relational Mapping) yang membungkus entity didalam database menjadi objek / variabel system.

Beberapa tes yang terhadap aplikasi suling sudah dilakukan oleh teman saya Rizal Diantoro, yang mencoba memanipulasi input form pada halaman login dan beberapa form pada halaman lain.

Untuk celah sql injection melalui React Js, bisa dikatakan tidak ada, karena aplikasi kami tidak mengakses database / datasource manapun melalui javascript (frontend). Kami menggunakan Rest API sebagai alur data flow frontend dan backend.

--

--