html injection tutorial
Μια σε βάθος ματιά στο HTML Injection:
Για να έχουμε καλύτερη αντίληψη για το HTML Injection, πρώτα πρέπει να γνωρίζουμε τι είναι το HTML.
Το HTML είναι μια γλώσσα σήμανσης, όπου όλα τα στοιχεία του ιστότοπου είναι γραμμένα στις ετικέτες. Χρησιμοποιείται κυρίως για τη δημιουργία ιστότοπων. Οι ιστοσελίδες αποστέλλονται στο πρόγραμμα περιήγησης με τη μορφή εγγράφων HTML. Στη συνέχεια, αυτά τα έγγραφα HTML μετατρέπονται σε κανονικούς ιστότοπους και εμφανίζονται για τους τελικούς χρήστες.
Αυτό το σεμινάριο θα σας δώσει μια πλήρη επισκόπηση του HTML Injection, τους τύπους και τα προληπτικά μέτρα μαζί με πρακτικά παραδείγματα με απλούς όρους για την εύκολη κατανόηση της έννοιας.
Τι θα μάθετε:
πώς να παίξετε ένα αρχείο mkv
- Τι είναι το HTML Injection;
- Τύποι έγχυσης HTML
- Πώς εκτελείται η έγχυση HTML;
- Πώς να δοκιμάσετε ενάντια στην ένεση HTML;
- Πώς να αποτρέψετε την ένεση HTML;
- Σύγκριση με άλλες επιθέσεις
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Τι είναι το HTML Injection;
Η ουσία αυτού του τύπου επίθεσης με ένεση είναι η έγχυση κώδικα HTML μέσω των ευπαθών τμημάτων του ιστότοπου. Ο κακόβουλος χρήστης στέλνει κώδικα HTML μέσω οποιουδήποτε ευάλωτου πεδίου με σκοπό την αλλαγή του σχεδιασμού του ιστότοπου ή οποιωνδήποτε πληροφοριών, που εμφανίζονται στον χρήστη.
Στο αποτέλεσμα, ο χρήστης μπορεί να δει τα δεδομένα που στάλθηκαν από τον κακόβουλο χρήστη. Επομένως, σε γενικές γραμμές, το HTML Injection είναι απλώς η έγχυση κώδικα γλώσσας σήμανσης στο έγγραφο της σελίδας.
Τα δεδομένα που αποστέλλονται κατά τη διάρκεια αυτού του τύπου επίθεσης με ένεση μπορεί να είναι πολύ διαφορετικά. Μπορεί να είναι μερικές ετικέτες HTML, οι οποίες θα εμφανίζουν απλώς τις πληροφορίες που αποστέλλονται. Επίσης, μπορεί να είναι ολόκληρη η πλαστή φόρμα ή σελίδα. Όταν συμβαίνει αυτή η επίθεση, το πρόγραμμα περιήγησης ερμηνεύει συνήθως κακόβουλα δεδομένα χρηστών ως νόμιμα και τα εμφανίζει.
Η αλλαγή της εμφάνισης ενός ιστότοπου δεν είναι ο μόνος κίνδυνος που προκαλεί αυτός ο τύπος επίθεσης. Είναι αρκετά παρόμοιο με την επίθεση XSS, όπου ο κακόβουλος χρήστης κλέβει τις ταυτότητες άλλων ατόμων. Επομένως, η κλοπή της ταυτότητας ενός άλλου ατόμου μπορεί επίσης να συμβεί κατά τη διάρκεια αυτής της επίθεσης με ένεση.
Τύποι έγχυσης HTML
Αυτή η επίθεση δεν φαίνεται να είναι πολύ δύσκολο να κατανοηθεί ή να εκτελεστεί, καθώς το HTML θεωρείται ως μια αρκετά απλή γλώσσα. Ωστόσο, υπάρχουν διαφορετικοί τρόποι εκτέλεσης αυτού του τύπου επίθεσης. Μπορούμε επίσης να διακρίνουμε διαφορετικούς τύπους αυτής της ένεσης.
Πρώτον, διαφορετικοί τύποι μπορούν να ταξινομηθούν με βάση τους κινδύνους που ενέχουν.
Όπως αναφέρθηκε, αυτή η επίθεση με ένεση μπορεί να πραγματοποιηθεί με δύο διαφορετικούς σκοπούς:
- Για να αλλάξετε την εμφάνιση του ιστότοπου που εμφανίζεται.
- Για να κλέψει την ταυτότητα άλλου ατόμου.
Επίσης, αυτή η επίθεση ένεσης μπορεί να πραγματοποιηθεί μέσω διαφορετικών τμημάτων του ιστότοπου, δηλαδή πεδίων εισαγωγής δεδομένων και του συνδέσμου του ιστότοπου.
Ωστόσο, οι κύριοι τύποι είναι:
- Αποθηκευμένη έγχυση HTML
- Αντανακλαστική ένεση HTML
# 1) Αποθηκευμένη ένεση HTML:
Η κύρια διαφορά μεταξύ αυτών των δύο τύπων έγχυσης είναι ότι η αποθηκευμένη επίθεση ένεσης εμφανίζεται όταν αποθηκεύεται κακόβουλος κώδικας HTML στον διακομιστή ιστού και εκτελείται κάθε φορά που ο χρήστης καλεί μια κατάλληλη λειτουργικότητα.
Ωστόσο, στην περίπτωση της εμφάνισης επίθεσης με ένεση, ο κακόβουλος κώδικας HTML δεν αποθηκεύεται μόνιμα στον διακομιστή ιστού. Το Reflected Injection εμφανίζεται όταν ο ιστότοπος ανταποκρίνεται αμέσως στην κακόβουλη εισαγωγή.
# 2) Ανακλαστική έγχυση HTML:
Αυτό μπορεί να χωριστεί ξανά σε περισσότερους τύπους:
- Αντανακλάται GET
- Αντανάκλαση POST
- Αντανάκλαση URL
Η επίθεση Reflected Injection μπορεί να εκτελεστεί διαφορετικά σύμφωνα με τις μεθόδους HTTP, δηλαδή, GET και POST. Υπενθυμίζω ότι με τη μέθοδο POST αποστέλλονται δεδομένα και με τη μέθοδο GET ζητούνται δεδομένα.
Για να μάθουμε, ποια μέθοδος χρησιμοποιείται για τα κατάλληλα στοιχεία του ιστότοπου, μπορούμε να ελέγξουμε την πηγή της σελίδας.
Για παράδειγμα , ένας υπεύθυνος δοκιμών μπορεί να ελέγξει τον πηγαίο κώδικα για τη φόρμα σύνδεσης και να βρει ποια μέθοδο χρησιμοποιείται για αυτήν. Στη συνέχεια, μπορεί να επιλεγεί η κατάλληλη μέθοδος Έγχυσης HTML.
Αντανάκλαση GET ένεση συμβαίνει, όταν η εισαγωγή μας εμφανίζεται (αντανακλάται) στον ιστότοπο. Ας υποθέσουμε, έχουμε μια απλή σελίδα με μια φόρμα αναζήτησης, η οποία είναι ευάλωτη σε αυτήν την επίθεση. Στη συνέχεια, αν πληκτρολογήσουμε οποιονδήποτε κώδικα HTML, θα εμφανιστεί στον ιστότοπό μας και ταυτόχρονα θα εισαχθεί στο έγγραφο HTML.
Για παράδειγμα, εισάγουμε απλό κείμενο με ετικέτες HTML:
Αντανάκλαση POST HTML Injection είναι λίγο πιο δύσκολο. Εμφανίζεται όταν ένας κακόβουλος κώδικας HTML αποστέλλεται αντί για σωστές παραμέτρους μεθόδου POST.
Για παράδειγμα , έχουμε μια φόρμα σύνδεσης, η οποία είναι ευάλωτη σε επιθέσεις HTML. Τα δεδομένα που πληκτρολογούνται στη φόρμα σύνδεσης αποστέλλονται με τη μέθοδο POST. Στη συνέχεια, εάν πληκτρολογήσουμε οποιονδήποτε κώδικα HTML αντί για τις σωστές παραμέτρους, τότε θα σταλεί με τη μέθοδο POST και θα εμφανιστεί στον ιστότοπο.
Για να εκτελέσετε την επίθεση Reflected POST HTML, συνιστάται να χρησιμοποιήσετε ένα πρόσθετο ενός ειδικού προγράμματος περιήγησης, το οποίο θα πλαστογραφεί τα απεσταλμένα δεδομένα. Ένα από αυτά είναι το πρόσθετο Mozilla Firefox 'Tamper Data'. Η προσθήκη αναλαμβάνει τα απεσταλμένα δεδομένα και επιτρέπει στον χρήστη να τα αλλάξει. Στη συνέχεια, τα δεδομένα που αποστέλλονται αποστέλλονται και εμφανίζονται στον ιστότοπο.
Για παράδειγμα, εάν χρησιμοποιούμε ένα τέτοιο πρόσθετο τότε θα στείλαμε τον ίδιο κώδικα HTML ή αναζητήστε τον κωδικό φόρμας, εάν θέλετε να δοκιμάσετε με κάτι πιο περίπλοκο Πληκτρολογήστε κείμενο για αναζήτηση
Εάν εμφανίζεται ένας κώδικας HTML που αποθηκεύεται κάπου, τότε ο ελεγκτής μπορεί να είναι σίγουρος, ότι αυτή η επίθεση με ένεση είναι δυνατή. Τότε μπορεί να δοκιμαστεί ένας πιο περίπλοκος κώδικας - για Παράδειγμα , για να εμφανιστεί η πλαστή φόρμα σύνδεσης.
Μια άλλη λύση είναι ο σαρωτής Injection HTML. Η αυτόματη σάρωση έναντι αυτής της επίθεσης μπορεί να εξοικονομήσει πολύ χρόνο. Θα ήθελα να ειδοποιήσω, ότι δεν υπάρχουν πολλά εργαλεία για δοκιμές έγχυσης HTML σε σύγκριση με άλλες επιθέσεις.
Ωστόσο, μια πιθανή λύση είναι η εφαρμογή WAS. Το WAS μπορεί να χαρακτηριστεί ως ένας αρκετά ισχυρός σαρωτής ευπάθειας, καθώς δοκιμάζει με τις διαφορετικές εισόδους και όχι μόνο σταματά με το πρώτο αποτυχημένο.
Είναι χρήσιμο για τη δοκιμή, ίσως όπως αναφέρεται στην παραπάνω προσθήκη προγράμματος περιήγησης 'Tamper Data', λαμβάνει δεδομένα αποστολής, επιτρέπει στον ελεγκτή να το αλλάξει και να το στείλει στο πρόγραμμα περιήγησης.
Μπορούμε επίσης να βρούμε κάποια διαδικτυακά εργαλεία σάρωσης, όπου πρέπει να παρέχετε μόνο τον σύνδεσμο του ιστότοπου και θα εκτελείται σάρωση κατά της επίθεσης HTML. Όταν ολοκληρωθεί ο έλεγχος, θα εμφανιστεί η περίληψη.
Θα ήθελα να σχολιάσω ότι κατά την επιλογή ενός εργαλείου σάρωσης, πρέπει να προσέξουμε πώς αναλύει τα αποτελέσματα και είναι αρκετά ακριβές ή όχι.
Ωστόσο, θα πρέπει να έχουμε κατά νου, ότι η μη αυτόματη δοκιμή δεν πρέπει να ξεχνιέται. Με αυτόν τον τρόπο μπορούμε να είμαστε σίγουροι ποιες ακριβείς καταχωρήσεις δοκιμάζονται και ποια ακριβή αποτελέσματα έχουμε. Επίσης, με αυτόν τον τρόπο είναι πιο εύκολο να αναλύσετε τα αποτελέσματα.
Από την εμπειρία μου σε μια καριέρα δοκιμών λογισμικού, θα ήθελα να σχολιάσω ότι και για τους δύο τρόπους δοκιμής πρέπει να έχουμε καλή γνώση αυτού του τύπου ένεσης. Διαφορετικά, θα ήταν δύσκολο να επιλέξετε ένα κατάλληλο εργαλείο αυτοματισμού και να αναλύσετε τα αποτελέσματά του. Επίσης, συνιστάται πάντοτε να μην ξεχνάτε να δοκιμάζετε χειροκίνητα, καθώς μας κάνει πιο σίγουρους για την ποιότητα.
Πώς να αποτρέψετε την ένεση HTML;
Δεν υπάρχουν αμφιβολίες, ότι ο κύριος λόγος για αυτήν την επίθεση είναι η απροσεξία και η έλλειψη γνώσης του προγραμματιστή. Αυτός ο τύπος επίθεσης ένεσης συμβαίνει όταν η είσοδος και η έξοδος δεν έχουν επικυρωθεί σωστά. Επομένως, ο κύριος κανόνας για την αποτροπή της επίθεσης HTML είναι η κατάλληλη επικύρωση δεδομένων.
Κάθε είσοδος πρέπει να ελέγχεται εάν περιέχει κώδικα δέσμης ενεργειών ή κώδικα HTML. Συνήθως ελέγχεται, εάν ο κώδικας περιέχει οποιοδήποτε ειδικό σενάριο ή αγκύλες HTML -,.
Υπάρχουν πολλές λειτουργίες για τον έλεγχο εάν ο κώδικας περιέχει ειδικά αγκύλες. Η επιλογή της λειτουργίας ελέγχου εξαρτάται από τη γλώσσα προγραμματισμού που χρησιμοποιείτε.
Πρέπει να θυμόμαστε, ότι είναι καλό δοκιμή ασφαλείας είναι επίσης μέρος της πρόληψης. Θα ήθελα να δώσω προσοχή, ότι καθώς η επίθεση HTML Injection είναι πολύ σπάνια, υπάρχει λιγότερη βιβλιογραφία για να μάθουμε γι 'αυτό και λιγότερος σαρωτής για επιλογή για αυτόματες δοκιμές. Ωστόσο, αυτό το μέρος των δοκιμών ασφαλείας δεν πρέπει πραγματικά να χάσετε, καθώς ποτέ δεν ξέρετε πότε μπορεί να συμβεί.
Επίσης, τόσο ο προγραμματιστής όσο και ο υπεύθυνος δοκιμών πρέπει να γνωρίζουν καλά πώς εκτελείται αυτή η επίθεση. Η καλή κατανόηση αυτής της διαδικασίας επίθεσης μπορεί να βοηθήσει στην αποτροπή της.
Σύγκριση με άλλες επιθέσεις
Σε σύγκριση με τις άλλες πιθανές επιθέσεις, αυτή η επίθεση σίγουρα δεν θα θεωρηθεί τόσο επικίνδυνη SQL Injection ή Επίθεση ένεσης JavaScript ή ακόμα και το XSS. Δεν θα καταστρέψει ολόκληρη τη βάση δεδομένων ούτε θα κλέψει όλα τα δεδομένα από τη βάση δεδομένων. Ωστόσο, δεν πρέπει να θεωρείται ασήμαντο.
σαπουνόι δοκιμές ερωτήσεων και απαντήσεων συνέντευξης
Όπως αναφέρθηκε προηγουμένως, ο κύριος σκοπός αυτού του τύπου ένεσης είναι η αλλαγή της εμφάνισης του ιστότοπου που εμφανίζεται με κακόβουλο σκοπό, εμφανίζοντας τις πληροφορίες ή τα δεδομένα που έχετε στείλει στον τελικό χρήστη. Αυτοί οι κίνδυνοι μπορεί να θεωρηθούν λιγότερο σημαντικοί.
Ωστόσο, η αλλαγή της εμφάνισης του ιστότοπου μπορεί να κοστίσει τη φήμη της εταιρείας σας. Εάν ένας κακόβουλος χρήστης θα καταστρέψει την εμφάνιση του ιστότοπού σας, τότε μπορεί να αλλάξει τις απόψεις των επισκεπτών σχετικά με την εταιρεία σας.
Πρέπει να θυμόμαστε, ότι ένας άλλος κίνδυνος, που φέρνει αυτή η επίθεση στον ιστότοπο, είναι η κλοπή της ταυτότητας άλλων χρηστών.
Όπως αναφέρθηκε, με την ένεση HTML ο κακόβουλος χρήστης μπορεί να κάνει ένεση ολόκληρης της σελίδας, η οποία θα εμφανίζεται για τον τελικό χρήστη. Στη συνέχεια, εάν ο τελικός χρήστης θα δείξει τα στοιχεία σύνδεσής του στη σελίδα ψεύτικης σύνδεσης, τότε θα σταλεί στον κακόβουλο χρήστη. Αυτή η περίπτωση είναι, φυσικά, το πιο επικίνδυνο μέρος αυτής της επίθεσης.
Πρέπει να αναφερθεί, ότι για την κλοπή δεδομένων άλλων χρηστών, αυτός ο τύπος επίθεσης επιλέγεται λιγότερο συχνά, καθώς υπάρχουν πολλές άλλες πιθανές επιθέσεις.
Ωστόσο, μοιάζει πολύ με την επίθεση XSS, η οποία κλέβει τα cookie του χρήστη και τις ταυτότητες άλλων χρηστών. Υπάρχουν επίσης επιθέσεις XSS, οι οποίες βασίζονται σε HTML. Επομένως, οι δοκιμές κατά της επίθεσης XSS και HTML ενδέχεται να είναι πολύ παρόμοιες και να πραγματοποιούνται μαζί.
συμπέρασμα
Καθώς το HTML Injection δεν είναι τόσο δημοφιλές όσο άλλες επιθέσεις, μπορεί να θεωρηθεί λιγότερο επικίνδυνο από άλλες επιθέσεις. Επομένως, μερικές φορές παραλείπεται ο έλεγχος αυτού του τύπου ένεσης.
Επίσης, είναι αξιοσημείωτο ότι υπάρχει σίγουρα λιγότερη βιβλιογραφία και πληροφορίες σχετικά με το HTML Injection. Επομένως, οι υπεύθυνοι δοκιμών ενδέχεται να αποφασίσουν να μην πραγματοποιήσουν αυτόν τον τύπο δοκιμών. Ωστόσο, σε αυτήν την περίπτωση, η επίθεση HTML ενδέχεται να μην αξιολογηθεί αρκετά.
Όπως έχουμε αναλύσει σε αυτό το σεμινάριο, με αυτόν τον τύπο έγχυσης, ολόκληρος ο σχεδιασμός του ιστότοπού σας μπορεί να καταστραφεί ή ακόμη και τα δεδομένα σύνδεσης του χρήστη να κλαπεί. Ως εκ τούτου, συνιστάται ιδιαίτερα να συμπεριλάβετε HTML Injection σε δοκιμές ασφαλείας και να επενδύετε καλές γνώσεις.
Έχετε συναντήσει κάποια τυπική ένεση HTML; Μη διστάσετε να μοιραστείτε τις εμπειρίες σας στην παρακάτω ενότητα σχολίων.
Συνιστώμενη ανάγνωση
- Εκμάθηση έκλειψης σε βάθος για αρχάριους
- Εκμάθηση δοκιμών SQL Injection (Παράδειγμα και πρόληψη της επίθεσης SQL Injection)
- Εκμάθηση Python DateTime με παραδείγματα
- Εκμάθηση επίθεσης Cross Site Scripting (XSS) με παραδείγματα, τύπους & πρόληψη
- Tutorial Injection JavaScript: Δοκιμή και αποτροπή επιθέσεων JS Injection στον ιστότοπο
- Unix Shell Scripting Tutorial με παραδείγματα
- Selenium Find Element By Text Tutorial με παραδείγματα
- Εκπαιδευτικό πρόγραμμα Python Main Function με πρακτικά παραδείγματα