Εβδομάδα 7 — Ευπάθειες web (OWASP Top 10)
Παιδαγωγικοί στόχοι
- Να κατανοήσετε τη λογική κάθε κατηγορίας του Top 10, όχι να την αποστηθίσετε.
- Να χρησιμοποιείτε αποτελεσματικά το Burp Suite σε αναχαίτιση και σε repeater.
- Να γράφετε μια καθαρή απόδειξη εκμετάλλευσης: αίτημα, απάντηση, αντίκτυπος.
Οι κατηγορίες του 2021 σε μία φράση η καθεμία
| Κατηγορία | Κεντρική ιδέα |
|---|---|
| A01 – Σπασμένοι έλεγχοι πρόσβασης | Η εφαρμογή επιτρέπει ό,τι θα έπρεπε να απαγορεύει. |
| A02 – Κρυπτογραφικές αστοχίες | Ευαίσθητα δεδομένα κακώς κρυπτογραφημένα ή σε απλό κείμενο. |
| A03 – Injection | Δεδομένα χρήστη εκτελούνται ως κώδικας (SQL, LDAP, OS). |
| A04 – Μη ασφαλής σχεδιασμός | Ελάττωμα σχεδίασης, όχι κώδικα. |
| A05 – Κακή ρύθμιση | Προεπιλεγμένες τιμές, υπερβολική λεπτομέρεια, ελλείπουσες κεφαλίδες. |
| A06 – Ευάλωτα συστατικά | Μη ενημερωμένες εξαρτήσεις. |
| A07 – Ταυτοποίηση / auth | Αδύναμες συνεδρίες, αδύναμοι κωδικοί, απουσία MFA. |
| A08 – Ακεραιότητα λογισμικού | Παραβιασμένη αλυσίδα εφοδιασμού. |
| A09 – Ανεπαρκής καταγραφή | Δεν βλέπουμε τίποτα να περνά. |
| A10 – SSRF | Ο διακομιστής αφήνεται να καθοδηγηθεί προς το εσωτερικό. |
Το Burp Suite στην πράξη
- Ρυθμίστε το Firefox να χρησιμοποιεί το Burp ως proxy
(
127.0.0.1:8080), εγκαταστήστε το πιστοποιητικό του Burp. - Proxy → Intercept: καταγράψτε ένα ενδιαφέρον αίτημα (υποβολή φόρμας, κλήση API).
- Repeater: στείλτε και ξαναπαίξτε το αίτημα, μεταβάλλετε μια παράμετρο τη φορά.
- Intruder: παραμετροποιημένα payloads. Ένα μόνο σημείο εισαγωγής τη φορά για να παραμείνει αναγνώσιμο.
Δύο παραδείγματα προς κατάκτηση
SQL injection — Επαλήθευση αληθινά
Μην αρκείστε σε ένα ' OR 1=1 -- που «εμφανίζει περισσότερες
γραμμές». Επιβεβαιώστε με μια ελεγχόμενη εξαγωγή:
GET /produits?id=42 UNION SELECT null, current_database(), null --
Η απάντηση πρέπει να περιέχει ένα συνεπές όνομα βάσης. Χωρίς αυτή την απόδειξη, είναι απλώς μια υπόθεση.
Αποθηκευμένο XSS — Συγκεκριμένος αντίκτυπος
Ένα <script>alert(1)</script> αποδεικνύει την αποθήκευση, όχι τον
αντίκτυπο. Η αναμενόμενη επίδειξη στην αναφορά: μια κλοπή συνεδρίας
προς ένα ελεγχόμενο endpoint, ή μια εξαναγκασμένη ενέργεια μέσω
fetch('/api/user/delete', {method:'POST', credentials:'include'}).
Έναρξη του TP2
Επιλέγετε μία ευάλωτη εφαρμογή του εργαστηρίου (Juice Shop, DVWA ή ισοδύναμο). Παραδοτέο για την εβδομάδα 9:
- Τρεις ευπάθειες του Top 10 εκμεταλλευμένες, η καθεμία με αίτημα, απάντηση, αντίκτυπο.
- Μια συγκεκριμένη επανόρθωση ανά ευπάθεια.