File Upload Vulnerability

Rhenaldi Octa Shapanara
6 min readJun 11, 2021

--

File upload vulnerability memungkinkan kami mengunggah semua jenis file (bahkan file berbahaya) ke server. Banyak situs web mengizinkan pengunggahan file dengan satu atau lain cara — beberapa mengizinkan untuk mengunggah file jpg atau png sebagai gambar profil sedangkan beberapa mengizinkan pengunggahan jenis file lain seperti pdf, txt, mp3, mp4 dll.

Untuk memahami ini, mari kita ambil skenario di mana sebuah situs web memungkinkan pengguna untuk mengunggah foto profil dalam format jpg dan file upload vulnerability. Jika situs web tersebut menggunakan php sebagai bahasa sisi server, maka peretas dapat menulis file berbahaya dalam bahasa php dan mengunggahnya sebagai file jpg.

File berbahaya ini akan memungkinkan peretas untuk mendapatkan akses ke server web menggunakan reverse shell atau pintu belakang.

Dalam posting ini, kami tidak hanya akan membahas bagaimana Anda dapat meretas situs web menggunakan file upload vulnerability tetapi juga bagaimana mengamankannya?

Anda dapat menulis shell PHP Anda sendiri, shell python atau shell ruby ​​untuk mendapatkan akses ke server web atau Anda dapat menggunakan alat seperti Metasploit, weevely dll untuk menghasilkan yang sama.

PERINGATAN: Ini hanya untuk tujuan pendidikan. Semua hal yang dilakukan di sini ada di perangkat saya sendiri atau di perangkat yang izinnya saya uji. Saya atau TechSphinx tidak bertanggung jawab jika Anda masuk penjara karena melakukan sesuatu yang ilegal menggunakan metode yang ditunjukkan di sini.

  • Kali Linux dan Metasploitable diinstal untuk pengujian.
  • sudah tahu untuk mengatur Burp Proxy
  • pemahaman tentang “Warning

Kami akan menggunakan DVWA (Damn Vulnerable Web Application) dan sangat jarang untuk pen-testing.

Let’s Start.

1.) Mulai Kali vm dan Metasploitable vm Anda.

2.) Sekarang, Login ke VM Metasploitable Anda dan catat alamat IP-nya menggunakan perintah “ifconfig”. Dalam kasus saya, IP adalah 10.0.2.4

3.) Sekarang, login ke Kali VM Anda, buka browser web di mesin Kali dan masukkan IP Metasploitable di URL browser. Anda akan melihat halaman selamat datang metasploitable2.

4,) Click DVWA. Login ke DVWA menggunakan:

Username: Admin
Password: password

5.) Buka file upload.

6.) Jelajahi file dari perangkat Anda dan coba unggah. (Dalam kasus saya, saya telah mengunggah file Eclipse.jpg)

7.) Setelah diunggah, navigasikan ke 10.0.2.4/dvwa/hackable/uploads/eclipse.jpg (Ganti “10.0.2.4” dengan IP mesin Metasploitable Anda dan Eclipse.jpg dengan nama file yang Anda unggah.)

Anda dapat melihat gambar yang diunggah di browser Anda.

Sekarang, mari kita coba mengeksploitasi file upload vulnerability.

Kesulitan Low

  1. ) Arahkan ke keamanan DVWA dan Pilih “low“ dan tekan submit.

2.) Buka Terminal

3.) Mari buat file berbahaya kita menggunakan weevely.

weevely generate abcxyz /root/Desktop/hack.php

weevely: nama tool yang saya gunakan.
generate: untuk generate the reverse shell.
abcxyz: kata sandi untuk shell reverse, sehingga hanya kami yang dapat terhubung (Anda dapat menggunakan kata sandi Anda sendiri, dalam kasus saya, saya menggunakan “abcxyz”) /root/Desktop/hack.php: nama dan lokasi file yang kita buat menggunakan weevely.

4.) Sekarang, unggah yang baru dibuat reverse shell. (hack.php)

5.) Setelah berhasil diunggah, buka tab baru dan buka 10.0.2.4/dvwa/hackable/uploads/hack.php

Anda akan melihat halaman Kosong (NO file not found error), ini berarti file telah berhasil diunggah.

6.) Sekarang, Kembali ke terminal dan gunakan weevely untuk terhubung ke shell terbalik Anda.

weevely 10.0.2.4/dvwa/hackable/uploads/hack.php abcxyz

10.0.2.4/dvwa/hackable/uploads/hack.php: URL file yang diunggah, Ganti IP sesuai dengan IP Metasploitable Anda. abcxyz: kata sandi yang saya gunakan di atas saat membuat shell reverse.

Setelah terhubung ke shell terbalik, Anda dapat menjalankan perintah OS Linux like ls, pwd, uname -a etc.

Anda juga dapat mengetik “ help “ untuk melihat apa yang dapat dilakukan weevely setelah koneksi berhasil.

Kesulitan Medium

Kami telah mengeksploitasi file upload vulnerability dalam kesulitan low mari kita naik level dan mencoba mengeksploitasi pada kesulitan medium.

1.) Ubah tingkat keamanan DVWA dari low ke medium.

2.) Coba exploit yang sama (hack.php) yang kita gunakan dalam tingkat kesulitan rendah. Anda akan melihat itu tidak berfungsi lagi. Coba unggah gambar normal (eclipse.jpg) dan pastikan file gambar normal diunggah tanpa masalah.

3.) Sekarang salin atau ganti nama file hack.php menjadi file hack2.jpg, karena kita sekarang tahu bahwa server menerima file jpg tetapi tidak mengizinkan kita untuk mengunggah file PHP.

4.) Start Burp Proxy. (Pastikan intersep ON)

5.) Upload file hack2.jpg.

6.) Buka tab Header di burp suite dan ubah ekstensi file yang diunggah dari hack2.jpg ke hack2.php dan Teruskan permintaan.

7.)Anda akan melihat file (hack2.php) telah berhasil diunggah.

8.) sekarang, open terminal and gunakan weevely untuk terhubung ke shell.

weevely http://10.0.2.4/dvwa/hackable/uploads/hack2.php abcxyz

Kata sandi (abcxyz) akan tetap sama seperti yang baru saja kita salin/ganti nama shell yang sama yang kita buat menggunakan weevely sebelumnya. Sekarang, Anda dapat menjalankan perintah OS linux (ls, pwd, uname -a) seperti sebelumnya.

Kesulitan Hight

Sekarang, waktunya untuk tingkat kesulitan high.

1.) Ubah tingkat keamanan menjadi HIGH.

2.) Coba eksploitasi kesulitan sedang, Anda akan melihat itu tidak berhasil. Sekarang, DVWA tidak hanya memeriksa ekstensi tetapi juga memverifikasi bahwa itu adalah gambar.

3.) Sekarang, salin lagi hack.php file ke hack3.jpg.

4.) Start burp proxy untuk mencegat koneksi.

5.) Upload file hack3.jpg.

6.) Sekarang, di tab header ubah hack3.jpg to hack3.php.jpg (Kami menggunakan ekstensi ganda di sini.)

7.) Juga Ketik GIF98 sebelum kode php.

8.) Kemudian teruskan permintaan, jika Anda telah melakukan semuanya dengan benar, file akan diunggah.

9.) Hubungkan ke shell menggunakan weevely

weevely http://10.0.2.4/dvwa/hackable/uploads/hack3.php.jpg abcxyz

Anda akan mendapatkan shell reverse.

KESULITAN IMPOSSIBLE

Seperti namanya, tidak mungkin untuk mengeksploitasi pada level ini.

Level ini berisi semua fitur keamanan yang perlu diterapkan untuk mengamankan terhadap file upload vulnerability.

Cara Aman Melawan File Upload Vulnerability.

Mari kita lihat cara mengamankan terhadap file upload vulnerability dengan mengambil beberapa tindakan sederhana:

  1. Jangan pernah izinkan pengguna mengunggah file yang dapat dieksekusi seperti php, exe, py, dll.
  2. Periksa jenis file yang diunggah dan ekstensi file. Hanya izinkan jenis file yang Anda harapkan. Misalnya: jika Anda mengizinkan pengguna untuk mengunggah foto profil, pastikan ekstensinya dalam format jpg, jpeg, atau png dan jenis file adalah gambar. Jangan izinkan pengguna mengunggah pdf, jenis file txt untuk foto profil.
  3. Analisis dan buat ulang file. Dalam hal foto profil, analisis kontennya, ubah ukurannya agar sesuai dengan situs web Anda dan ubah namanya. Gunakan pustaka php-Imagick untuk menghapus metadata dan membuat ulang file gambar, inilah yang mereka lakukan dalam kesulitan yang mustahil.

Jadi, Periksa Ekstensi, Periksa Jenis file, dan Buat ulang seluruh gambar. Dengan cara ini jika seorang peretas mencoba mengunggah file berbahaya, itu akan dihancurkan selama proses pembuatan ulang.

--

--