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

SSRF with filter bypass via open redirection vulnerability

Link Portswigger : https://portswigger.net/web-security/ssrf/lab-ssrf-filter-bypass-via-open-redirection

PreviousServer-Side Request Forgery (SSRF)NextBlind SSRF with out-of-band detection

Last updated 3 months ago

Description :

This lab has a stock check feature which fetches data from an internal system.

To solve the lab, change the stock check URL to access the admin interface at http://192.168.0.12:8080/admin and delete the user carlos.

The stock checker has been restricted to only access the local application, so you will need to find an open redirect affecting the application first.

Proof of concept:

  1. Cek seluruh HTTP Traffic pada seluruh fitur

  2. Pada fitur check stock , sistem target memanggil API via parameter stockAPI

  3. Pada parameter ini terjadi request yang memanggil API /product/stock/check?productId=&storeId= . Pada parameter ini, terdapat kemungkinan terjadinya kerentanan SSRF. Pertama-tama coba untuk melakukan pengecekan eksternal SSRF

  4. Ketika mencoba untuk melakukan SSRF eksternal, pada parameter tersebut memiliki URL validation yang dimana sistem akan membaca jika yang diinputkan bukan dari host URL, sistem akan menolak request tersebut. Maka dari itu, kita tidak bisa melakukannya (SSRF Eksternal). Mari lakukan analisa kembali, pada traffic SSRF, terdapat API lainnya. API tersebut dipanggil ketika pengguna melakukan request "Next Product"

  5. Lakukan analisa API tersebut, dari hasil analisa, endpoint atau API tersebut rentan terhadap kerentanan Open Redirect. Sebagai contoh, ketika nilai pada parameter tersebut diubah menjadi URL eksternal, sistem akan melakukan redirect ke URL tersebut

  6. Coba untuk mengkombinasikan kerentanan tersebut, yaitu kerentanan SSRF dan Open Redirect. Copy API Next Product untuk disimpan atau diisi pada parameter stockAPI

  7. Lakukan URL encode pada nilai parameter tersebut. Jika sudah, kirim kembali request tersebut dan response tersebut akan berhasil

    Ini terjadi karena sistem membaca inputan yang valid pada parameter stockAPI , karena nilainya diawali "/" , yang artinya menunjunkan ke host target domain/URL

  8. Coba untuk melakukan SSRF access internal IP menggunakan parameter path pada API /product/NextProduct . Seperti yang telah diketahui, clue untuk lab ini adalah

  9. Seperti yang telah dijelaskan pada deksripsi lab, kita harus melakukan penghapusan akun carlos untuk menyelesaikan tantangan lab ini. Untuk itu, manfaatkan kerentanan SSRF via Open Redirect kembali dengan internal URL/Endpoint target seperti berikut itu didapati dari hasil menganalisa hasil response di tahapan sebelumnya

Thanks, Stay Ethical & Happy Hacking! 🍻

http://192.168.0.12:8080/admin
http://192.168.0.12:8080/admin/delete?username=carlos