# File path traversal, traversal sequences blocked with absolute path bypass

Description:

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

The application blocks traversal sequences but treats the supplied filename as being relative to a default working directory.

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

Proof of concept:

1. Analisa web target
2. Dari hasil analisa didapati pada saat mengakses halaman dari salah satu detail product yang ada, didapati endpoint yang digunakan untuk memanggil file gambar produk menggunakan parameter `filename`\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FejA8WB65z835h843Tedp%2Fimage.png?alt=media&#x26;token=ebcc0ed9-7172-4175-9a36-82485577d5dd" alt=""><figcaption></figcaption></figure>
3. Dan berikut merupakan gambar ketika endpoint tersebut diakses secara langsung pada browser\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FJ4YbW5URy8zbaWxK6SK2%2Fimage.png?alt=media&#x26;token=7e14fc8f-5cc3-4860-9cc2-30c509006c8d" alt=""><figcaption></figcaption></figure>
4. Karena parameter `filename` tersebut digunakan untuk memanggil sebuah file yang terdapat pada server target, hal tersebut memungkinkan untuk dilakukannya serangan `Local File Inclusion (LFI) / Path Traversal` . Untuk memastikannya, dapat dengan cara menginputkan payload-payload basic `LFI` pada parameter tersebut secara langsung atau juga dapat menggunakan burp suite intruder untuk melakukan percobaan payload secara otomatis. Pada kasus ini, saya menggunakan payload berikut ini\
   <https://raw.githubusercontent.com/emadshanab/LFI-Payload-List/master/LFI%20payloads.txt>\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FF3fU6qUb8ijFLWyOASgU%2Fimage.png?alt=media&#x26;token=01dfbe38-4079-4306-85d0-27932ed88b06" alt=""><figcaption></figcaption></figure>
5. Seperti yang dapat dilihat pada gambar diatas, dari hasil burp suite intruder didapati payload-payload yang valid ditandai dengan nilai `length response` yang berbeda pada umunya request endpoint tersebut. Payload-payload yang valid diantaranya adalah `/etc/passwd, /etc/crontab, /etc/ssh/ssh_config, /etc/mysql/my.cnf` dan lain sebagainya. Seperti yang telah dijelaskan sebelumnya, selain menggunakan cara otomatis menggunakan burp suite intruder, untuk melakukan eksploitasi kerentanan `LFI` atau `Path Traversal` ini juga, dapat menggunakan cara manual yaitu dengan menginputkan satu persatu payload pada parameter terdampak. Untuk contohnya, saya menginputkan payload `/etc/passwd` pada parameter `filename` di endpoint terdampak\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2Fb5QB00xTjhnIm0DZ4wBC%2Fimage.png?alt=media&#x26;token=b21ee450-2c21-4454-80b5-e84fac9ef7d9" alt=""><figcaption></figcaption></figure>
6. Namun ketika payload tersebut dikirimkan, response yang diberikan di browser adalah `file tidak bisa ditampilkan, karena mengandung kesalahan` . Itu terjadi karenan seharusnya file gambar yang ditampilkan pada browser. Namun, hasil dari pemanggilan file /etc/passwd tersebut tetap muncul tetapi untuk dapat melihatnya dapat menggunakan burp suite untuk melihat responsenya. Untuk lebih jelasnya dapat melihat gambar berikut ini\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2Ffe6XgsnR4Slru1zqpinG%2Fimage.png?alt=media&#x26;token=8415073a-505c-48c9-9594-c97db0547f4a" alt=""><figcaption></figcaption></figure>
7. Selain menggunakan payload `/etc/passwd` saya juga mencoba menggunakan payload `/etc/crontab`\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2FJ4a2iJAhTDX5ITv4eDld%2Fimage.png?alt=media&#x26;token=82fbcb45-f373-4d27-b49e-a9482b2dfe40" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2Fyt8qjBXw8gPkWMx5dmC5%2Fimage.png?alt=media&#x26;token=0ef5aa29-f558-445c-8af3-453954ab9747" alt=""><figcaption></figcaption></figure>
8. Karena telah berhasil mengakses file `/etc/passwd` di server target, maka challenge lab ini berhasil terselesaikan\\

   <figure><img src="https://261650435-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FdAiS2nxqUmGSg5rZoOOl%2Fuploads%2F4ThR2M78P9bEZIpnkNtr%2Fimage.png?alt=media&#x26;token=a77ed657-0972-403d-ad4b-a3ca9423a0be" alt=""><figcaption></figcaption></figure>

Thanks, Stay Ethical & Happy Hacking! 🍻
