Web Injection


Point pertama dari OWASP Top 10 adalah Web Injection (A1). Web Injection adalah memasukkan kode tertentu pada web/aplikasi. Oleh aplikasi kode ini akan dijalankan sebagai command/query. Injection umumnya dilakukan pada form login atau form input. Selain itu ada juga yang dilakukan pada alamat web. Tujuan akhir serangan adalah mendapatkan akses ke database/ aplikasi tanpa perlu login.  Penyerangan dapat dilakukan pada SQL, LDAP maupun pada OS. Ada banyak sekali teknik penyerangan yang digunakan mulai dari memasukan string SQL sampai penyerangan kompleks yang membutuhkan pemahaman coding dan database yang baik. Untuk mencari celah keamanan ini bisa digunakan Scanner, teknik fuzzing atau mempelajari kode web atau aplikasi. Resiko tertinggi dari serangan ini adalah pengambilalihan aplikasi atau web oleh penyerang.

Contoh serangan paling sederhana adalah dengan memasukkan kode ‘ or ‘1’=’1  pada form login. Langkah pencegahan yang dapat dilakukan adalah dengan memperhatikan interpreter yang digunakan. menggunakan variable bind, melakukan encoding semua input, menggunakan whitelist pada semua input, serta membatasi privilige (hak akses) ke database. OWASP membuat API yang bisa digunakan untuk mencegah serangan ini ESAPI.

sqlInjections2

Beberapa dokumen yang bisa digunakan untuk mempelajari tentang Injection ini bisa dilihat disini:

OWASP SQL Injection Prevention Cheat Sheet

OWASP Query Parameterization Cheat Sheet

OWASP Command Injection Article

OWASP XML eXternal Entity (XXE) Reference Article

ASVS: Output Encoding/Escaping Requirements (V6)

OWASP Testing Guide: Chapter on SQL Injection Testing

CWE Entry 77 on Command Injection

CWE Entry 89 on SQL Injection

CWE Entry 564 on Hibernate Injection


Silahkan tuliskan tanggapan, kritik maupun saran