Blocking main page to steal postmessage
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Σύμφωνα με αυτήν την Terjanq writeup οι blob έγγραφα που δημιουργούνται από null origins είναι απομονωμένα για λόγους ασφαλείας, που σημαίνει ότι αν κρατήσετε απασχολημένη την κύρια σελίδα, η σελίδα iframe θα εκτελείται.
Βασικά, σε αυτή την πρόκληση μια απομονωμένη iframe εκτελείται και αμέσως μετά που φορτώνεται η γονική σελίδα θα στείλει ένα post μήνυμα με τη σημαία. Ωστόσο, αυτή η επικοινωνία postmessage είναι ευάλωτη σε XSS (η iframe μπορεί να εκτελέσει κώδικα JS).
Επομένως, ο στόχος του επιτιθέμενου είναι να επιτρέψει στην γονική να δημιουργήσει την iframe, αλλά πριν επιτρέψει στην γονική σελίδα να στείλει τα ευαίσθητα δεδομένα (σημαία) να την κρατήσει απασχολημένη και να στείλει το payload στην iframe. Ενώ η γονική είναι απασχολημένη, η iframe εκτελεί το payload το οποίο θα είναι κάποιο JS που θα ακούει για το μήνυμα postmessage της γονικής και θα διαρρεύσει τη σημαία. Τελικά, η iframe έχει εκτελέσει το payload και η γονική σελίδα σταματά να είναι απασχολημένη, οπότε στέλνει τη σημαία και το payload τη διαρρέει.
Αλλά πώς θα μπορούσατε να κάνετε την γονική να είναι απασχολημένη αμέσως μετά που δημιούργησε την iframe και μόλις περιμένει την iframe να είναι έτοιμη να στείλει τα ευαίσθητα δεδομένα; Βασικά, πρέπει να βρείτε ασύγχρονη ενέργεια που θα μπορούσατε να κάνετε την γονική να εκτελέσει. Για παράδειγμα, σε αυτή την πρόκληση η γονική ήταν ακροατής σε postmessages όπως αυτό:
έτσι ήταν δυνατό να σταλεί ένας μεγάλος ακέραιος σε ένα postmessage που θα μετατραπεί σε συμβολοσειρά σε αυτή τη σύγκριση, η οποία θα πάρει κάποιο χρόνο:
Και για να είστε ακριβείς και να στείλετε εκείνο το postmessage ακριβώς μετά τη δημιουργία του iframe αλλά πριν είναι έτοιμο να λάβει τα δεδομένα από τον γονέα, θα χρειαστεί να παίξετε με τα χιλιοστά του setTimeout
.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)