mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
56 lines
7.2 KiB
Markdown
56 lines
7.2 KiB
Markdown
# Web API Pentesting
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|
||
|
||
## API Pentesting Methodology Summary
|
||
|
||
Η δοκιμή διείσδυσης APIs περιλαμβάνει μια δομημένη προσέγγιση για την αποκάλυψη ευπαθειών. Αυτός ο οδηγός συνοψίζει μια ολοκληρωμένη μεθοδολογία, τονίζοντας πρακτικές τεχνικές και εργαλεία.
|
||
|
||
### **Understanding API Types**
|
||
|
||
- **SOAP/XML Web Services**: Χρησιμοποιούν τη μορφή WSDL για τεκμηρίωση, που συνήθως βρίσκεται σε διαδρομές `?wsdl`. Εργαλεία όπως το **SOAPUI** και το **WSDLer** (Burp Suite Extension) είναι καθοριστικά για την ανάλυση και τη δημιουργία αιτημάτων. Παράδειγμα τεκμηρίωσης είναι διαθέσιμο στο [DNE Online](http://www.dneonline.com/calculator.asmx).
|
||
- **REST APIs (JSON)**: Η τεκμηρίωση συχνά έρχεται σε αρχεία WADL, ωστόσο εργαλεία όπως το [Swagger UI](https://swagger.io/tools/swagger-ui/) παρέχουν μια πιο φιλική προς το χρήστη διεπαφή για αλληλεπίδραση. Το **Postman** είναι ένα πολύτιμο εργαλείο για τη δημιουργία και τη διαχείριση παραδειγματικών αιτημάτων.
|
||
- **GraphQL**: Μια γλώσσα ερωτήσεων για APIs που προσφέρει μια πλήρη και κατανοητή περιγραφή των δεδομένων στο API σας.
|
||
|
||
### **Practice Labs**
|
||
|
||
- [**VAmPI**](https://github.com/erev0s/VAmPI): Ένα σκόπιμα ευάλωτο API για πρακτική εξάσκηση, καλύπτοντας τις 10 κορυφαίες ευπάθειες API του OWASP.
|
||
|
||
### **Effective Tricks for API Pentesting**
|
||
|
||
- **SOAP/XML Vulnerabilities**: Εξερευνήστε τις ευπάθειες XXE, αν και οι δηλώσεις DTD συχνά περιορίζονται. Οι ετικέτες CDATA μπορεί να επιτρέπουν την εισαγωγή payload αν το XML παραμείνει έγκυρο.
|
||
- **Privilege Escalation**: Δοκιμάστε τα endpoints με διαφορετικά επίπεδα προνομίων για να εντοπίσετε πιθανότητες μη εξουσιοδοτημένης πρόσβασης.
|
||
- **CORS Misconfigurations**: Εξετάστε τις ρυθμίσεις CORS για πιθανή εκμετάλλευση μέσω επιθέσεων CSRF από αυθεντικοποιημένες συνεδρίες.
|
||
- **Endpoint Discovery**: Εκμεταλλευτείτε τα πρότυπα API για να ανακαλύψετε κρυφά endpoints. Εργαλεία όπως οι fuzzers μπορούν να αυτοματοποιήσουν αυτή τη διαδικασία.
|
||
- **Parameter Tampering**: Πειραματιστείτε με την προσθήκη ή την αντικατάσταση παραμέτρων σε αιτήματα για να αποκτήσετε μη εξουσιοδοτημένα δεδομένα ή λειτουργίες.
|
||
- **HTTP Method Testing**: Διαφοροποιήστε τις μεθόδους αιτημάτων (GET, POST, PUT, DELETE, PATCH) για να αποκαλύψετε απροσδόκητες συμπεριφορές ή αποκαλύψεις πληροφοριών.
|
||
- **Content-Type Manipulation**: Εναλλάξτε μεταξύ διαφορετικών τύπων περιεχομένου (x-www-form-urlencoded, application/xml, application/json) για να δοκιμάσετε ζητήματα ανάλυσης ή ευπάθειες.
|
||
- **Advanced Parameter Techniques**: Δοκιμάστε με απροσδόκητους τύπους δεδομένων σε JSON payloads ή πειραματιστείτε με XML δεδομένα για XXE injections. Δοκιμάστε επίσης την ρύπανση παραμέτρων και χαρακτήρες wildcard για ευρύτερη δοκιμή.
|
||
- **Version Testing**: Παλαιότερες εκδόσεις API μπορεί να είναι πιο ευάλωτες σε επιθέσεις. Ελέγξτε πάντα και δοκιμάστε σε πολλές εκδόσεις API.
|
||
|
||
### **Tools and Resources for API Pentesting**
|
||
|
||
- [**kiterunner**](https://github.com/assetnote/kiterunner): Εξαιρετικό για την ανακάλυψη API endpoints. Χρησιμοποιήστε το για να σαρώσετε και να κάνετε brute force διαδρομές και παραμέτρους κατά των στοχευμένων APIs.
|
||
```bash
|
||
kr scan https://domain.com/api/ -w routes-large.kite -x 20
|
||
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
|
||
kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0
|
||
kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
|
||
```
|
||
- [**https://github.com/BishopFox/sj**](https://github.com/BishopFox/sj): το sj είναι ένα εργαλείο γραμμής εντολών σχεδιασμένο να βοηθά στην επιθεώρηση των **εκτεθειμένων αρχείων ορισμού Swagger/OpenAPI** ελέγχοντας τα σχετικά API endpoints για αδύνατη αυθεντικοποίηση. Παρέχει επίσης πρότυπα εντολών για χειροκίνητη δοκιμή ευπαθειών.
|
||
- Πρόσθετα εργαλεία όπως το **automatic-api-attack-tool**, **Astra** και **restler-fuzzer** προσφέρουν προσαρμοσμένες λειτουργίες για τη δοκιμή ασφάλειας API, που κυμαίνονται από προσομοίωση επιθέσεων έως fuzzing και σάρωση ευπαθειών.
|
||
- [**Cherrybomb**](https://github.com/blst-security/cherrybomb): Είναι ένα εργαλείο ασφάλειας API που ελέγχει το API σας με βάση ένα αρχείο OAS (το εργαλείο είναι γραμμένο σε rust).
|
||
|
||
### **Πόροι Μάθησης και Πρακτικής**
|
||
|
||
- **OWASP API Security Top 10**: Βασική ανάγνωση για την κατανόηση κοινών ευπαθειών API ([OWASP Top 10](https://github.com/OWASP/API-Security/blob/master/2019/en/dist/owasp-api-security-top-10.pdf)).
|
||
- **API Security Checklist**: Μια ολοκληρωμένη λίστα ελέγχου για την ασφάλιση των APIs ([GitHub link](https://github.com/shieldfy/API-Security-Checklist)).
|
||
- **Logger++ Filters**: Για την αναζήτηση ευπαθειών API, το Logger++ προσφέρει χρήσιμα φίλτρα ([GitHub link](https://github.com/bnematzadeh/LoggerPlusPlus-API-Filters)).
|
||
- **API Endpoints List**: Μια επιμελημένη λίστα πιθανών API endpoints για δοκιμαστικούς σκοπούς ([GitHub gist](https://gist.github.com/yassineaboukir/8e12adefbd505ef704674ad6ad48743d)).
|
||
|
||
## Αναφορές
|
||
|
||
- [https://github.com/Cyber-Guy1/API-SecurityEmpire](https://github.com/Cyber-Guy1/API-SecurityEmpire)
|
||
|
||
{{#include ../../banners/hacktricks-training.md}}
|