File path traversal, traversal sequences blocked with absolute path bypass
Link: https://portswigger.net/web-security/file-path-traversal/lab-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:
Analisa web target
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
Dan berikut merupakan gambar ketika endpoint tersebut diakses secara langsung pada browser
Karena parameter
filename
tersebut digunakan untuk memanggil sebuah file yang terdapat pada server target, hal tersebut memungkinkan untuk dilakukannya seranganLocal File Inclusion (LFI) / Path Traversal
. Untuk memastikannya, dapat dengan cara menginputkan payload-payload basicLFI
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.txtSeperti 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 kerentananLFI
atauPath Traversal
ini juga, dapat menggunakan cara manual yaitu dengan menginputkan satu persatu payload pada parameter terdampak. Untuk contohnya, saya menginputkan payload/etc/passwd
pada parameterfilename
di endpoint terdampakNamun 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 iniSelain menggunakan payload
/etc/passwd
saya juga mencoba menggunakan payload/etc/crontab
Karena telah berhasil mengakses file
/etc/passwd
di server target, maka challenge lab ini berhasil terselesaikan
Thanks, Stay Ethical & Happy Hacking! 🍻
Last updated