Friday, November 30, 2007

[journal e-rdc] Log; pintu lain menuju sistem.

Tepat 1 minggu lalu, seorang teman bernama Luca dari Romania menulis sebuah "entry" pada blognya, tentang suksesnya ia melakukan serangan Cross Sites Scripting (XSS) pada sebuah aplikasi web dengan meminjam error log yang di munculkan oleh mysql, inilah salah satu penyebab mengapa "membiarkan development state equiptment/procedure berjalan di production machine sangatlah terlarang!". Awalnya, luca melakukan SQL injection dan berhasil, lalu pembuat aplikasi menambahkan fungsi mysql_real_escape_string untuk melakukan perlindungan, tetapi tetap membiarkan pesan error di tampilkan, dan Luca berhasil mengeksploitasinya menggunakan unusual XSS vector.

Error log tidak hanya memberikan informasi tabel/field yang anda butuhkan untuk melakukan injeksi, Error log tidak hanya memberikan path lengkap suatu direktori yang lebih kita kenal dengah "Full path Disclousure", tetapi Log adalah sesuatu yang bisa "dimanfaatkan" dan di manipulasi.

Beberapa tahun yang lalu; bagi mereka yang "memperhatikan"; Rgod yang kerap mengeluarkan exploits dan advisory untuk aplikasi web memakai satu metode untuk melakukan injeksi memanfaatkan log files. Rgod memanipulasi web server (httpd) error_log untuk kemudian dimanfaatkan melakukan Log Injection/Local File Inclusion, dikarenakan perlindungan yang dilakukan oleh (sebut saja) PHP dengan tidak mengijinkan aplikasi web untuk menampilkan halaman web dari URL lain (Remote file inclusion), misal saja dengan mematikan allow_url_fopen dan allow_url_include.

Sudah sangat lama, K-159 dan Saya melakukan riset secara mendalam mengenai Log Injection ini, dan berharap menciptakan pengembangan lebih lanjut. Bahkan K-159 pernah "berjanji" untuk menuliskannya dalam sebuah artikel yang akan di rilis dalam salah satu terbitan echo zine, tetapi sangat disayangkan, karena kesibukan beliau maka artikel tersebut masih berbentuk "notes" dalam sebuah file notepad (mudah-mudahan akan dapat diselesaikan ) :)

2 kasus diatas adalah salah satu contoh yang nyata, bahwa ekploitasi tidak terhenti pada hasil yang diberikan oleh aplikasi, eksploitsi tidak hanya berhenti pada saat attacker yang tadinya mengharapkan hasil "A" dan menemukan bahwa aplikasi tidak akan memberikan hasil "A" dan ternyata aplikasi tersebut dengan bangganya maah menyimpan detail "laporan" penolakan tersebut ke dalam sebuah catatan.

Catatan tersebut adalah suatu file yang bebas di ubah, dimodifikasi bahkan di akses oleh aplikasi, karena umumnya dimiliki secara "PENUH" untuk di kontrol oleh aplikasi yang merupakan pemiliknya. Sasarannya semakin berubah, karena kali ini tujuannya adalah mengeksploitasi file-file/fungsi-fungsi yang mencatat aktifitas dari aplikasi, yang lebih kita kenal dengan file log, lalu apa yang salah? .

Setidaknya inilah pertanyaan yang saya tinggalkan buat anda, silahkan berfikir dan jika anda adalah sang "pencari tahu" (the curious one) maka akan banyak ide yang akan anda munculkan.

No comments:

Post a Comment