CSP bypass: self + 'unsafe-inline' with Iframes
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μια ρύθμιση όπως:
Απαγορεύει τη χρήση οποιωνδήποτε συναρτήσεων που εκτελούν κώδικα που μεταδίδεται ως συμβολοσειρά. Για παράδειγμα: eval, setTimeout, setInterval
θα αποκλειστούν λόγω της ρύθμισης unsafe-eval
Οποιοδήποτε περιεχόμενο από εξωτερικές πηγές αποκλείεται επίσης, συμπεριλαμβανομένων εικόνων, CSS, WebSockets και, ειδικότερα, JS
Έχει παρατηρηθεί ότι οι σύγχρονοι περιηγητές μετατρέπουν εικόνες και κείμενα σε HTML για να βελτιώσουν την εμφάνισή τους (π.χ., ρύθμιση φόντων, κεντράρισμα κ.λπ.). Ως εκ τούτου, εάν ένα αρχείο εικόνας ή κειμένου, όπως το favicon.ico
ή το robots.txt
, ανοιχτεί μέσω ενός iframe
, αποδίδεται ως HTML. Σημαντικό είναι ότι αυτές οι σελίδες συχνά δεν έχουν επικεφαλίδες CSP και μπορεί να μην περιλαμβάνουν X-Frame-Options, επιτρέποντας την εκτέλεση αυθαίρετου JavaScript από αυτές:
Ομοίως, οι απαντήσεις σφάλματος, όπως αρχεία κειμένου ή εικόνες, συνήθως έρχονται χωρίς CSP headers και μπορεί να παραλείπουν τα X-Frame-Options. Τα σφάλματα μπορούν να προκαλούνται ώστε να φορτώνονται μέσα σε ένα iframe, επιτρέποντας τις εξής ενέργειες:
Μετά την ενεργοποίηση οποιουδήποτε από τα αναφερόμενα σενάρια, η εκτέλεση JavaScript μέσα στο iframe είναι εφικτή ως εξής:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)