Skip to main content

Εβδομάδα 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 στην πράξη​

  1. Ρυθμίστε το Firefox να χρησιμοποιεί το Burp ως proxy (127.0.0.1:8080), εγκαταστήστε το πιστοποιητικό του Burp.
  2. Proxy → Intercept: καταγράψτε ένα ενδιαφέρον αίτημα (υποβολή φόρμας, κλήση API).
  3. Repeater: στείλτε και ξαναπαίξτε το αίτημα, μεταβάλλετε μια παράμετρο τη φορά.
  4. 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 εκμεταλλευμένες, η καθεμία με αίτημα, απάντηση, αντίκτυπο.
  • Μια συγκεκριμένη επανόρθωση ανά ευπάθεια.