File path traversal, traversal sequences stripped with superfluous URL-decode

Link: https://portswigger.net/web-security/file-path-traversal/lab-superfluous-url-decode

Description:

This lab contains a path traversal vulnerability in the display of product images.

The application blocks input containing path traversal sequences. It then performs a URL-decode of the input before using it.

To solve the lab, retrieve the contents of the /etc/passwd file.

Proof of concept:

  1. Cek semua fitur

  2. Analisa request dan response pada semua fitur. Dari hasil analisa, terdapat endpoint /image untuk mengambil data gambar dengan parameter filename

  3. Pada endpoint tersebut, memungkinkan terdapat kerentanan File path traversal karena endpoint tersebut digunakan untuk mengambil data/file pada server target

  4. Lakukan percoban exploit dengan beberapa payload, hingga ditemukan payload ../../../../../etc/passwd dengan 2 kali di encode URL yang hasilnya akan menjadi %25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%32%65%25%32%65%25%32%66%25%36%35%25%37%34%25%36%33%25%32%66%25%37%30%25%36%31%25%37%33%25%37%33%25%37%37%25%36%34. Kirim request tersebut dengan nilai parameter filename bernilai payload tersebut dan response yang diberikan akan mengirimkan data file /etc/passwd pada server target

  5. Cara yang dapat dilakukan lainnya juga dapat menggunakan fitur burp suite intruder, Setting attack type menjadi snipper dan payload berisi list Fuzzing - Path Traversal (Only Burp Professional) atau bisa menambahkan payload fuzzing traversal lainnya yang terdapat pada github atau lainnya. Lakukan brute force tersebut hingga menemukan payload yang valid yang ditandai dengan HTTP Response Code 200

Thanks, Stay Ethical & Happy Hacking! 🍻

Last updated