HanustaviraGA / o-semar

0 stars 0 forks source link

SQL Injection #5

Open VladRafli opened 2 years ago

VladRafli commented 2 years ago

Problem

Bahaya SQL Injection di kode rest.php. Karena input dari user (melalui POST) bisa mengandung query SQL. Semua query yang perlu ada input dari user Wajib di filter.

Cara mengatasinya menggunakan mysqli_prepare()

Issue

VladRafli commented 2 years ago

Update

Belum masukin lagi Issue yang ditemukan di folder admin. Masih ada banyak yang pake query biasa

HanustaviraGA commented 2 years ago

Update

Sedang dicicil untuk perubahan dari query biasa ke mysqli prepare

VladRafli commented 2 years ago

Note

Kalo query-nya engga ada concatination, maka tidak perlu diganti, karena tidak ada kemungingan SQL Injection di Query yang engga ada input dari user

// Ini aman
mysqli_query("SELECT * FROM table_name");

// Ini engga aman
mysqli_query("SELECT * FROM table_name WHERE id = " . $id);

// Contoh SQL Injection
// Input -> OR 1 = 1
// SELECT * FROM table_name WHERE id = $id
// SELECT * FROM table_name WHERE id = OR 1 = 1 -> Mengembailkan semua data dari table karena WHERE Clausenya true
mysqli_query("SELECT * FROM table_name WHERE id = " . $id);
VladRafli commented 2 years ago

Update

https://github.com/VladRafli/o-semar/commit/f55410462018ae4e7c585433e24f04e41387c0aa

Mitigasi vulnerability ini untuk API