Μια ευπάθεια στις λίστες Adblock Plus επιτρέπει την εκτέλεση κακόβουλου κώδικα

πρόγραμμα περιήγησης

Recientemente έχει ανακαλυφθεί μια ευπάθεια που θα μπορούσε να επιτρέψει στους συντηρητές να αποκλείσουν λίστες φίλτρων για επεκτάσεις προγράμματος περιήγησης Adblock Plus, AdBlock και uBlocker για να δημιουργήσετε φίλτρα που εισάγουν απομακρυσμένα σενάρια σε ιστότοπους.

Με μια βάση χρηστών που έχει ξεπεράσει το όριο των 10 εκατομμυρίων, Εάν εγχύθηκαν κακόβουλα σενάρια σε προγράμματα αποκλεισμού διαφημίσεων, αυτό θα είχε σημαντικό αντίκτυπο επειδή θα μπορούσαν να πραγματοποιήσουν ανεπιθύμητες δραστηριότητες, όπως κλοπή cookie, πληροφορίες σύνδεσης, πρόκληση ανακατευθύνσεων σελίδας ή άλλη ανεπιθύμητη συμπεριφορά.

Για αυτούς που δεν είναι εξοικειωμένοι με τους αποκλειστές διαφημίσεων, βασικά χρησιμοποιούν λίστες διευθύνσεων URL σχετίζονται με κακόβουλες διαφημίσεις και συμπεριφορά.

Συνήθως, Διευθύνονται από μια μικρή ομάδα ανθρώπων ή ακόμη και από ένα άτομο.

Όταν αυτές οι λίστες φορτώνονται με μια επέκταση αποκλεισμού διαφημίσεων, όπως το Adblock Plus, αυτή η επέκταση θα αποτρέψει τη σύνδεση του προγράμματος περιήγησης με τις διευθύνσεις URL που περιλαμβάνονται στη λίστα και έτσι αποτρέπει τη σύνδεση με κακόβουλες διαφημίσεις ή σενάρια.

Η επιλογή φίλτρου $ rewrite προκαλεί το πρόβλημα

Όταν AdblockerPlus 3.2 ξεκίνησε το 2018, αυτό πρόσθεσε μια νέα επιλογή λίστας φίλτρων, που ονομάζεται $ rewrite.

Αυτή η επιλογή επιτρέπεται σε έναν συντηρητή λίστας αντικαταστήστε ένα αίτημα ιστού που αντιστοιχεί σε μια κανονική έκφραση συγκεκριμένα με άλλη διεύθυνση URL.

Hubert Figuiere, ποιος εισήγαγε αυτή τη λειτουργία, εξήγησε ότι:

«Δεδομένου ότι το Adblock Plus 3.2 για Chrome, Firefox και Opera (και 3.1.0.2053 εκδόσεις ανάπτυξης), μια νέα επιλογή φίλτρου $ rewrite σας επιτρέπει να ξαναγράψετε τη διεύθυνση URL ενός πόρου αντί να τον αποκλείσετε.

Όταν το Adblock Plus εκχωρεί μια διεύθυνση URL αιτήματος σε ένα φίλτρο με την επιλογή $ rewrite, μετατρέπει τη διεύθυνση URL με βάση τον παρεχόμενο κανόνα και λέει στο πρόγραμμα περιήγησης να φορτώσει τον πόρο ταυτόχρονα.

Η σύνταξη του κανόνα $ rewrite καθορίζει μια συμβολοσειρά που χρησιμεύει ως πρότυπο για τη νέα διεύθυνση URL.

Το $ n αντικαθίσταται από την κανονική έκφραση n-th sub-match του φίλτρου. Αυτή είναι η ίδια σύνταξη με τη συνάρτηση JavaScript String.prototype.replace ().

Εάν το προκύπτον URL είναι σχετικό (δηλαδή δεν έχετε οικοδεσπότη), η προέλευση του αρχικού ερωτήματος θα χρησιμοποιηθεί ως βάση. Σε κάθε περίπτωση, εάν η νέα διεύθυνση URL δεν κοινοποιεί την προέλευση, η επανεγγραφή θα θεωρείται ανεπιτυχής και το αρχικό αίτημα θα περάσει.

Επίσης, τα φίλτρα επανεγγραφής $ αγνοούνται για ερωτήματα SCRIPT, SUBDOCUMENT, OBJECT και OBJECT_SUBREQUEST για λόγους ασφαλείας. Αυτή η επιλογή είναι κατάλληλη για τροποποίηση ή εξάλειψη παραμέτρων ερωτήματος ».

Το μόνο μειονέκτημα είναι ότι η συμβολοσειρά αντικατάστασης πρέπει να είναι μια σχετική διεύθυνση URL, πράγμα που σημαίνει ότι δεν περιέχει ένα όνομα κεντρικού υπολογιστή και, όταν ξαναγραφεί, πρέπει να ανήκει στον ίδιο αρχικό τομέα με το αίτημα.

Η εκτέλεση κώδικα γίνεται ακόμη και στους χάρτες google

Ένας ερευνητής ασφάλειας εξήγησε ότι:

Υπό ορισμένες συνθήκες, είναι πιθανό για έναν μη εξουσιοδοτημένο κακόβουλο συντηρητή φίλτρου να δημιουργήσει έναν κανόνα που εισάγει ένα απομακρυσμένο σενάριο σε μια συγκεκριμένη τοποθεσία.

Για να γίνει αυτό, απλώς αναζητήστε έναν ιστότοπο που φορτώνει σενάρια από οποιονδήποτε τομέα που περιέχει μια ανοιχτή ανακατεύθυνση και χρησιμοποιήστε το XMLHttpRequest ή το Fetch για να κατεβάσετε τα σενάρια για εκτέλεση.

Δεν ήταν πολύ δύσκολο να το βρεις γιατί να το κάνεις αυτό μόνο απλώς χρησιμοποιήστε τους Χάρτες Google ως απόδειξη της ιδέας.

Ο ερευνητής εξήγησε ότι πρέπει να πληρούνται τα ακόλουθα κριτήρια έτσι ώστε μια υπηρεσία Ιστού να μπορεί να αξιοποιηθεί με αυτήν τη μέθοδο:

  • Η σελίδα πρέπει να φορτώσει μια συμβολοσειρά JS χρησιμοποιώντας XMLHttpRequest ή Fetch και να εκτελέσει τον κωδικό επιστροφής.
  • Η σελίδα δεν πρέπει να περιορίζει τις πηγές από τις οποίες μπορεί να ανακτηθεί χρησιμοποιώντας οδηγίες πολιτικής ασφάλειας περιεχομένου ή να επικυρώσει τη διεύθυνση URL του τελικού αιτήματος πριν από την εκτέλεση του κώδικα που κατεβάσατε.
  • Η πηγή του ανακτημένου κώδικα πρέπει να έχει ανοιχτή ανακατεύθυνση από τον διακομιστή ή αυθαίρετο περιεχόμενο χρήστη από τον κεντρικό υπολογιστή.

Η χρήση του XMLHttpRequest ή του Fetch για λήψη σεναρίων και άνοιγμα της ανακατεύθυνσης είναι τα δύο κλειδιά για το πρόβλημα.

Για να μετριάσετε αυτό το πρόβλημα, Συνιστάται οι ιστότοποι να χρησιμοποιούν την κεφαλίδα πολιτικής ασφάλειας περιεχομένου και την επιλογή connect-src για να καθορίσετε μια λίστα επιτρεπόμενων ιστότοπων από τους οποίους μπορούν να φορτωθούν τα σενάρια.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: AB Internet Networks 2008 SL
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.