Bypassing shell_exec() disabled..

Oke, setelah beberapa hari kita gak ketemu karena ada beberapa pekerjaan yang harus diselesaikan, akhirnya kita ketemu lagi di sesi tulis-menulis di blog LinX ini 😀
Mungkin kita langsung saja ke pokok permasalahannya.Sebelumnya yang perlu diingat adalah bahwa semua yang saya lakukan dalam tutorial ini bersifat hanya untuk sebuah penetration testing dalam sebuah server. Tidak ada perubahan konfigurasi dalam sebuah server yang saya tes dan tidak ada file-file yang terhapus, rusak, ataupun terbackdoor. Dan apa yang akan Anda lakukan dalam kaitannya dengan apa yang ada di postingan ini merupakan tanggung jawab Anda sendiri.
Oke, mungkin langsung aja masuk ke pokok bahasan. Pada kesempatan kali ini apa yang akan saya bahas adalah suatu hal yang berkaitan dengan fungsi php untuk sebuah eksekusi instruksi dalam sebuah server, misal system(),shell_exec(), dll. Jadi dengan fungsi-fungsi itu, kita bisa melakukan instruksi sistem dalam sebuah server, entah itu windows server, linux, unix, dan unix like lainnya. Tetapi kebanyakan provider hosting (khususnya di Indonesia) mematikan fungsi-fungsi ini untuk masalah keamanan.Untuk itu marilah kita melihat pada phpinfo apakah fungsi-fungsi di atas dimatikan.

Ternyata fungsi-fungsi itu dimatikan. Sekarang kita akan mencoba membuat sebuah file yang berisi salah satu perintah eksekusi untuk membuktikan bahwa fungsi itu memang dimatikan.

<?php echo shell_exec('cat /etc/passwd'); ?>

Dan hasil yang akan tampil adalah

Ternyata memang benar dimatikan (masih gak percaya aja sih kamu LinX?). Sekarang kita akan mencoba membypass hal itu. Yang harus kita punya adalah account cpanel dan fitur fantastico di dalamnya (saya mencoba pada cpanel versi 11.25 dan 11.28). Yak, memang sulit ketika kita harus mendapatkan account cpanel dalam sebuah penetration testing dalam sebuah situs dan server. Tetapi no pain no gain brother 😀

Sebenarnya bug atau celah terdapat pada fantastico, pada fantastico terdapat sebuah script autoinstall4imagesgalleryupgrade.php yang dapat mengincludekan sebuah file config.php dalam pengeksekusiannya. Jadi, kita akan membuat sebuah file config.php pada /home/user/ dengan isi file

<?php echo shell_exec('cat /etc/passwd'); ?>

Setting php pada cpanel itu berbeda dengan setting php pada aplikasi web itu sendiri karena beberapa alasan untuk menunjang fitur-fitur pada fantastico. Karena itu hanya beberapa fungsi yang didisable dalam cpanel. Lalu pada pada kita langsung menuju url

http://www.xxx.com:2082/frontend/x3/fantastico/autoinstall4imagesgalleryupgrade.php?action=GoAhead&scriptpath_show=/home/user/

Dan akan terlihat tampilan seperti ini

Yaph..bypassed..Lebih tepatnya celah ini bisa kita sebut sebagai local file inclusion, karena dapat mengincludekan file lokal dalam sebuah server. Dan Anda bisa memvariasikan file config.php sesuai dengan imajinasi Anda, misal dengan membuat post form sederhana sehingga input dari instruksi bisa lebih dinamis.

Sebenarnya bug ini sudah lama muncul pada tahun 2008, tetapi entah mengapa belum dipatch dari cpanelnya sendiri. Dan saya pun belum menemukan solusi untuk hal seperti ini. Untuk penanganan tercepat mungkin bisa kita nonaktifkan dulu fungsi fantastico pada cpanel. Yah, seperti kata orang-orang terdahulu. “Keamanan berbanding terbalik dengan kenyamanan”

Terima Kasih 🙂

references:

http://exploit-db.com

http://php.net

You may also like

Leave a Reply

Your email address will not be published. Required fields are marked *