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