Enumerasi Lingkungan
Memahami lingkungan situs web adalah langkah awal yang krusial. Gunakan alat seperti Wappalyzer untuk mengidentifikasi teknologi yang digunakan, seperti bahasa pemrograman, kerangka kerja, dan server. Periksa Source code halaman untuk menemukan filter Client-side yang mungkin diterapkan, misalnya pembatasan pada extension file atau tipe MIME.
Identifikasi Lokasi File yang Diunggah
Setelah menemukan halaman unggah, gunakan alat seperti Gobuster untuk memindai direktori dan menemukan lokasi file yang diunggah. Ini membantu Anda memahami bagaimana file diakses setelah diunggah, apakah secara langsung atau melalui halaman lain.
Analisis Upload Request
Gunakan Burpsuite untuk menyadap dan menganalisis Upload Request. Ini memberi wawasan tentang bagaimana situs menangani Upload file dan apakah ada filter server-side yang harus dihadapi.
Eksperimen dengan Upload
Coba Upload berbagai jenis file, dimulai dengan file yang tidak berbahaya, untuk melihat bagaimana file tersebut diakses dan apakah ada filter yang diterapkan. Jika file dapat diunggah, periksa apakah file tersebut dapat diakses langsung atau melalui metode lain. Jika unggahan file berbahaya ditolak, pesan kesalahan yang muncul dapat memberikan petunjuk tentang filter yang digunakan.
Identifikasi dan Melewati Filter Server-side:
.
.
.
.
Pendekatan ini memungkinkan Anda untuk mengidentifikasi dan melewati berbagai jenis filter yang mungkin diterapkan pada unggahan file di sisi server, sehingga membuka peluang untuk memanfaatkan titik uploads file di situs web.
Kunjungi jewel.uploadvulns.thm
Ambil apa yang telah Anda pelajari di ruangan ini dan gunakan untuk mendapatkan shell pada mesin ini. Seperti biasa, bendera Anda ada di
Agar bisa di access menggunakan Domain
.
Scan directory menggunakan gobuster
.
Pertama, kita dapat melihat kode sumber situs tersebut.
sebagian besar kode berasal dari folder bernama "
Ia memberi tahu kita bahwa ia ditulis dalam
pemeriksaan Source Code untuk gambar latar belakang menunjukkan bahwa gambar tersebut berasal dari " /content/SAD.jpg ". Hal ini juga tampak seperti skema penamaan acak yang diterapkan oleh kode server-side. Kita dapat memeriksa dan menemukan semua gambar JPEG yang dihosting di direktori konten tersebut dengan melakukan pemindaian Gobuster lain menggunakan daftar kata yang disediakan.
.
kita dapat memeriksa halaman "
halaman ini kemungkinan besar adalah tempat kita dapat mengeksekusi shell karena Node.js TIDAK akan mengizinkan Anda menavigasi ke sana seperti PHP.
Langkah selanjutnya adalah mencoba dan mengunggah
Berikutnya, kita cukup menyalin kode dari GitHub ke dalam file .js dan mengubah alamat IP dan nomor port ke IP TryHackMe Anda dan port acak (saya menggunakan 8080 ).
Sekarang, kita dapat mencoba mengunggah shell mentah ini dalam formulir unggah. Jika kita melakukannya, kita akan mendapatkan kesalahan.
Saat ini, kami tidak tahu apakah ini filter client-side atau server-sid . Kami dapat memeriksa client-side menggunakan
Setelah "
klik kanan dan masuk ke menu "
Jika masih gagal coba lakukan juga di
Setelah selesai, teruskan saja semua paket lainnya hingga Anda mencapai respons. Respons ini berisi kode lengkap untuk skrip upload.js . Seperti yang Anda lihat, berkas ini memiliki tiga filter -
Hapus saja semua ini dari permintaan dan
Sekali lagi, kita dapat mencoba mengunggah file
Filter yang sangat sederhana dapat berupa pemeriksaan tipe MIME. Jika kita mencoba mengubah nama file dari "
.
file tersebut berhasil diunggah
Jika Anda ingat kembali, kami melakukan pemindaian untuk mengidentifikasi semua gambar JPG di server. Melihat kembali hasil ini, kami melihat bahwa ada 4 gambar dengan nama file 3 huruf yang tampaknya dibuat secara acak
Jika kita menjalankan pemindaian yang sama lagi dan membandingkan hasilnya, kita akan melihat 5 gambar kali ini, yang menunjukkan bahwa "
Sekarang kita tahu di mana file tersebut berada ( /content ) dan file tersebut telah diunggah ( SSC.jpg ) kita dapat mencoba menavigasi ke sana dan melihat apakah file tersebut ada di sana
Ini memberi kita kesalahan karena itu bukan berkas JPG tetapi ini mengonfirmasi bahwa berkas berhasil diunggah dan ada di server setelah melewati semua filter.
Untuk menjalankan reverse shell ini secara penuh, pertama-tama kita perlu mengatur listener netcat ( nc -nvlp 8080 ) ke port mana pun yang Anda tentukan di
.
jika port tersebut sudah di gunakan, ganti di script shell.jpg lalu uploads kembali dan jagan lupa untuk scan file meggunakan gobuster
Lalu, jika Anda ingat halaman
Setelah kita menekan enter dan kembali ke netcat kita.