56 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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}}