Portswigger
  • Portswigger
  • Server-Side Request Forgery
    • Server-Side Request Forgery (SSRF)
  • SSRF with filter bypass via open redirection vulnerability
  • Blind SSRF with out-of-band detection
  • Cross-Site Scripting
    • Cross-Site Scripting (XSS)
  • Reflected XSS into a JS string with angle brackets and double&single quotes HTML-encoded escape
  • XSS into a template literal w/ angle brackets, single, double quotes, backslash & backticks Escaped
  • Authentication
    • Authentication
  • Username enumeration via subtly different responses
  • 2FA broken logic
  • Username enumeration via response timing
  • Username enumeration via account lock
  • Password reset poisoning via middleware
  • Path Traversal
    • Path Traversal
  • File path traversal, traversal sequences stripped with superfluous URL-decode
  • File path traversal, traversal sequences blocked with absolute path bypass
  • Business Logic Vulnerabilities
    • Business Logic Vulnerabilities
  • Insufficient workflow validation
  • Inconsistent handling of exceptional input
  • Server-Side Template Injection
    • Server-Side Template Injection
  • Basic server-side template injection
  • Basic server-side template injection (code context)
  • SQL Injection
    • SQL Injection
    • Blind SQL injection with conditional responses
  • SQL injection UNION attack, retrieving data from other tables
  • SQL injection attack, listing the database contents on non-Oracle databases
  • API Testing
    • API Testing
  • Exploiting an API endpoint using documentation
  • Exploiting a mass assignment vulnerability
  • Finding and exploiting an unused API endpoint
  • JWT ATTACK
    • JWT Attack
    • JWT authentication bypass via unverified signature
  • JWT authentication bypass via jku header injection
  • JWT authentication bypass via flawed signature verification
  • HTTP HOST HEADER ATTACKS
    • HTTP Host header attacks
  • Basic password reset poisoning
  • Host header authentication bypass
  • No SQL Injection
    • NoSQL Injection
  • Detecting NoSQL injection
  • Exploiting NoSQL operator injection to bypass authentication
  • Exploiting NoSQL injection to extract data
  • FILE UPLOAD VULNERABILITIES
    • File Upload Vulnerabilities
  • Web shell upload via obfuscated file extension
  • OAuth Authentication
    • OAuth Authentication
  • OAuth account hijacking via redirect_uri
  • ACCESS CONTROL VULNERABILITIES
    • Access Control Vulnerabilities
  • User ID controlled by request parameter with data leakage in redirect
  • User ID controlled by request parameter with password disclosure
  • User role controlled by request parameter
  • User role can be modified in user profile
  • URL-based access control can be circumvented
  • INFORMATION DISCLOSURE VULNERABILITIES
    • Information Disclosure Vulnerabilities
  • Information disclosure in version control history
  • XML external entity injection
    • XML External Entity (XXE) Injection
  • Exploiting XXE using external entities to retrieve files
  • Exploiting blind XXE to retrieve data via error messages
  • Blind XXE with out-of-band interaction
  • Blind XXE with out-of-band interaction via XML parameter entities
  • OS COMMAND INJECTION
    • OS Command Injection
  • Blind OS command injection with out-of-band data exfiltration
  • PROTOTYPE POLLUTION
    • Prototype Pollution
  • Privilege escalation via server-side prototype pollution
  • WEB CACHE POISONING
    • Web Cache Poisoning
  • Web cache poisoning via an unkeyed query parameter
Powered by GitBook
On this page

File path traversal, traversal sequences blocked with absolute path bypass

Link: https://portswigger.net/web-security/file-path-traversal/lab-absolute-path-bypass

PreviousFile path traversal, traversal sequences stripped with superfluous URL-decodeNextBusiness Logic Vulnerabilities

Last updated 3 months ago

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

  3. Dan berikut merupakan gambar ketika endpoint tersebut diakses secara langsung pada browser

  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

  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

  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

  7. Selain menggunakan payload /etc/passwd saya juga mencoba menggunakan payload /etc/crontab

  8. Karena telah berhasil mengakses file /etc/passwd di server target, maka challenge lab ini berhasil terselesaikan

Thanks, Stay Ethical & Happy Hacking! 🍻

https://raw.githubusercontent.com/emadshanab/LFI-Payload-List/master/LFI%20payloads.txt