hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md

13 KiB
Raw Blame History

403 & 401 Bypasses

{% hint style="success" %} Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Υποστήριξη HackTricks
{% endhint %}

Άμεσα διαθέσιμη ρύθμιση για αξιολόγηση ευπαθειών & pentesting. Εκτελέστε μια πλήρη pentest από οπουδήποτε με 20+ εργαλεία & δυνατότητες που κυμαίνονται από αναγνώριση έως αναφορά. Δεν αντικαθιστούμε τους pentesters - αναπτύσσουμε προσαρμοσμένα εργαλεία, μονάδες ανίχνευσης & εκμετάλλευσης για να τους δώσουμε πίσω λίγο χρόνο για να εμβαθύνουν, να ανοίξουν shells και να διασκεδάσουν.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

HTTP Verbs/Methods Fuzzing

Δοκιμάστε να χρησιμοποιήσετε διαφορετικούς ρήματα για να αποκτήσετε πρόσβαση στο αρχείο: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK

  • Ελέγξτε τις κεφαλίδες απόκρισης, ίσως κάποιες πληροφορίες να μπορούν να δοθούν. Για παράδειγμα, μια 200 απόκριση σε HEAD με Content-Length: 55 σημαίνει ότι το HEAD verb μπορεί να αποκτήσει πρόσβαση στις πληροφορίες. Αλλά πρέπει ακόμα να βρείτε έναν τρόπο να εξάγετε αυτές τις πληροφορίες.
  • Χρησιμοποιώντας μια HTTP κεφαλίδα όπως X-HTTP-Method-Override: PUT μπορεί να αντικαταστήσει το ρήμα που χρησιμοποιείται.
  • Χρησιμοποιήστε το TRACE ρήμα και αν είστε πολύ τυχεροί ίσως στην απόκριση να δείτε επίσης τις κεφαλίδες που προστέθηκαν από ενδιάμεσους διακομιστές που μπορεί να είναι χρήσιμες.

HTTP Headers Fuzzing

  • Αλλάξτε την κεφαλίδα Host σε κάποια αυθαίρετη τιμή (που λειτούργησε εδώ)

  • Δοκιμάστε να χρησιμοποιήσετε άλλους User Agents για να αποκτήσετε πρόσβαση στον πόρο.

  • Fuzz HTTP Headers: Δοκιμάστε να χρησιμοποιήσετε HTTP Proxy Headers, HTTP Authentication Basic και NTLM brute-force (με λίγους μόνο συνδυασμούς) και άλλες τεχνικές. Για να κάνω όλα αυτά έχω δημιουργήσει το εργαλείο fuzzhttpbypass.

  • X-Originating-IP: 127.0.0.1

  • X-Forwarded-For: 127.0.0.1

  • X-Forwarded: 127.0.0.1

  • Forwarded-For: 127.0.0.1

  • X-Remote-IP: 127.0.0.1

  • X-Remote-Addr: 127.0.0.1

  • X-ProxyUser-Ip: 127.0.0.1

  • X-Original-URL: 127.0.0.1

  • Client-IP: 127.0.0.1

  • True-Client-IP: 127.0.0.1

  • Cluster-Client-IP: 127.0.0.1

  • X-ProxyUser-Ip: 127.0.0.1

  • Host: localhost

Αν η διαδρομή είναι προστατευμένη μπορείτε να προσπαθήσετε να παρακάμψετε την προστασία της διαδρομής χρησιμοποιώντας αυτές τις άλλες κεφαλίδες:

  • X-Original-URL: /admin/console
  • X-Rewrite-URL: /admin/console
  • Αν η σελίδα είναι πίσω από έναν διακομιστή μεσολάβησης, ίσως ο διακομιστής μεσολάβησης να είναι αυτός που σας εμποδίζει να αποκτήσετε πρόσβαση στις ιδιωτικές πληροφορίες. Δοκιμάστε να εκμεταλλευτείτε HTTP Request Smuggling ή κεφαλίδες hop-by-hop.
  • Fuzz ειδικές HTTP κεφαλίδες αναζητώντας διαφορετική απόκριση.
  • Fuzz ειδικές HTTP κεφαλίδες ενώ κάνετε fuzzing HTTP Methods.
  • Αφαιρέστε την κεφαλίδα Host και ίσως μπορέσετε να παρακάμψετε την προστασία.

Path Fuzzing

Αν /path είναι αποκλεισμένο:

  • Δοκιμάστε να χρησιμοποιήσετε /%2e/path _(αν η πρόσβαση αποκλείεται από έναν διακομιστή μεσολάβησης, αυτό θα μπορούσε να παρακάμψει την προστασία). Δοκιμάστε επίσης_** /%252e**/path (διπλή κωδικοποίηση URL)
  • Δοκιμάστε Unicode bypass: /%ef%bc%8fpath (Οι κωδικοποιημένοι χαρακτήρες URL είναι όπως το "/") έτσι όταν κωδικοποιηθούν ξανά θα είναι //path και ίσως έχετε ήδη παρακάμψει τον έλεγχο ονόματος /path
  • Άλλες παρακάμψεις διαδρομής:
  • site.com/secret > HTTP 403 Forbidden
  • site.com/SECRET > HTTP 200 OK
  • site.com/secret/ > HTTP 200 OK
  • site.com/secret/. > HTTP 200 OK
  • site.com//secret// > HTTP 200 OK
  • site.com/./secret/.. > HTTP 200 OK
  • site.com/;/secret > HTTP 200 OK
  • site.com/.;/secret > HTTP 200 OK
  • site.com//;//secret > HTTP 200 OK
  • site.com/secret.json > HTTP 200 OK (ruby)
  • Χρησιμοποιήστε όλη αυτή τη λίστα στις παρακάτω καταστάσεις:
  • /FUZZsecret
  • /FUZZ/secret
  • /secretFUZZ
  • Άλλες παρακάμψεις API:
  • /v3/users_data/1234 --> 403 Forbidden
  • /v1/users_data/1234 --> 200 OK
  • {“id”:111} --> 401 Unauthriozied
  • {“id”:[111]} --> 200 OK
  • {“id”:111} --> 401 Unauthriozied
  • {“id”:{“id”:111}} --> 200 OK
  • {"user_id":"<legit_id>","user_id":"<victims_id>"} (JSON Parameter Pollution)
  • user_id=ATTACKER_ID&user_id=VICTIM_ID (Parameter Pollution)

Parameter Manipulation

  • Αλλάξτε τιμή παραμέτρου: Από id=123 --> id=124
  • Προσθέστε επιπλέον παραμέτρους στη διεύθυνση URL: ?id=124 —-> id=124&isAdmin=true
  • Αφαιρέστε τις παραμέτρους
  • Αναδιατάξτε τις παραμέτρους
  • Χρησιμοποιήστε ειδικούς χαρακτήρες.
  • Εκτελέστε δοκιμές ορίων στις παραμέτρους — παρέχετε τιμές όπως -234 ή 0 ή 99999999 (μόνο μερικές παραδείγματα).

Έκδοση πρωτοκόλλου

Αν χρησιμοποιείτε HTTP/1.1 δοκιμάστε να χρησιμοποιήσετε 1.0 ή ακόμα και να ελέγξετε αν υποστηρίζει 2.0.

Άλλες παρακάμψεις

  • Αποκτήστε το IP ή CNAME του τομέα και δοκιμάστε να επικοινωνήσετε απευθείας.
  • Δοκιμάστε να πιέσετε τον διακομιστή στέλνοντας κοινές GET αιτήσεις (Λειτούργησε για αυτόν τον τύπο με το Facebook).
  • Αλλάξτε το πρωτόκολλο: από http σε https, ή για https σε http
  • Πηγαίνετε στο https://archive.org/web/ και ελέγξτε αν στο παρελθόν αυτό το αρχείο ήταν παγκοσμίως προσβάσιμο.

Brute Force

  • Μαντέψτε τον κωδικό πρόσβασης: Δοκιμάστε τα παρακάτω κοινά διαπιστευτήρια. Ξέρετε κάτι για το θύμα; Ή το όνομα της πρόκλησης CTF;
  • Brute force: Δοκιμάστε βασική, digest και NTLM αυθεντικοποίηση.

{% code title="Κοινά διαπιστευτήρια" %}

admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

{% endcode %}

Αυτόματα Εργαλεία

Άμεσα διαθέσιμη ρύθμιση για αξιολόγηση ευπαθειών & pentesting. Εκτελέστε ένα πλήρες pentest από οπουδήποτε με 20+ εργαλεία & χαρακτηριστικά που κυμαίνονται από αναγνώριση έως αναφορά. Δεν αντικαθιστούμε τους pentesters - αναπτύσσουμε προσαρμοσμένα εργαλεία, μονάδες ανίχνευσης & εκμετάλλευσης για να τους δώσουμε πίσω λίγο χρόνο για να εμβαθύνουν, να ανοίξουν shells και να διασκεδάσουν.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

{% hint style="success" %} Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Υποστήριξη HackTricks
{% endhint %}