Chrome Cache to XSS

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 ์ง€์›ํ•˜๊ธฐ

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๊ธ€์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ๋…ผ์˜๋œ ๊ธฐ์ˆ ์€ ๋‘ ๊ฐ€์ง€ ์ฃผ์š” ์บ์‹œ ์œ ํ˜•์ธ **back/forward cache (bfcache)**์™€ disk cache์˜ ๋™์ž‘ ๋ฐ ์ƒํ˜ธ์ž‘์šฉ์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ๊ณผ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๋‹ค. bfcache๋Š” JavaScript ํž™์„ ํฌํ•จํ•œ ํŽ˜์ด์ง€์˜ ์ „์ฒด ์Šค๋ƒ…์ƒท์„ ์ €์žฅํ•˜๋ฉฐ, ๋” ํฌ๊ด„์ ์ธ ์Šค๋ƒ…์ƒท์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ ๋•๋ถ„์— back/forward ํƒ์ƒ‰ ์‹œ disk cache๋ณด๋‹ค ์šฐ์„ ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, disk cache๋Š” JavaScript ํž™์„ ํฌํ•จํ•˜์ง€ ์•Š๊ณ  ์›น์—์„œ ๊ฐ€์ ธ์˜จ ๋ฆฌ์†Œ์Šค๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ํ†ต์‹  ๋น„์šฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด back/forward ํƒ์ƒ‰์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. disk cache์˜ ํฅ๋ฏธ๋กœ์šด ์ ์€ fetch๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ์˜จ ๋ฆฌ์†Œ์Šค๋ฅผ ํฌํ•จํ•œ๋‹ค๋Š” ๊ฒƒ์œผ๋กœ, ์ด๋Š” ์ ‘๊ทผ๋œ URL ๋ฆฌ์†Œ์Šค๊ฐ€ ์บ์‹œ์—์„œ ๋ธŒ๋ผ์šฐ์ €์— ์˜ํ•ด ๋ Œ๋”๋ง๋œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ์‚ฌํ•ญ:

  • bfcache๋Š” back/forward ํƒ์ƒ‰์—์„œ disk cache๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • bfcache ๋Œ€์‹  disk cache์— ์ €์žฅ๋œ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ›„์ž๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

bfcache ๋น„ํ™œ์„ฑํ™”:

๊ธฐ๋ณธ์ ์œผ๋กœ Puppeteer๋Š” Chromium ๋ฌธ์„œ์— ๋‚˜์—ด๋œ ์กฐ๊ฑด์— ๋งž์ถฐ bfcache๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. bfcache๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ํšจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” window.opener์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” window.open()์„ ์‚ฌ์šฉํ•˜์—ฌ ํŽ˜์ด์ง€๋ฅผ ์—ฌ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋™์ž‘ ์žฌํ˜„:

  1. ์›นํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: https://example.com.
  2. open("http://spanote.seccon.games:3000/api/token")์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์„œ๋ฒ„ ์‘๋‹ต์ด 500 ์ƒํƒœ ์ฝ”๋“œ๋กœ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.
  3. ์ƒˆ๋กœ ์—ด๋ฆฐ ํƒญ์—์„œ http://spanote.seccon.games:3000/์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ http://spanote.seccon.games:3000/api/token์˜ ์‘๋‹ต์„ disk cache๋กœ ์บ์‹œํ•ฉ๋‹ˆ๋‹ค.
  4. history.back()์„ ์‚ฌ์šฉํ•˜์—ฌ ๋’ค๋กœ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์€ ํŽ˜์ด์ง€์— ์บ์‹œ๋œ JSON ์‘๋‹ต์„ ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค.

disk cache๊ฐ€ ์‚ฌ์šฉ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด Google Chrome์˜ DevTools๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

bfcache ๋ฐ disk cache์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์„ธ๋ถ€์ •๋ณด๋Š” ๊ฐ๊ฐ web.dev์˜ bfcache ๋ฐ Chromium์˜ disk cache ์„ค๊ณ„ ๋ฌธ์„œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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 ์ง€์›ํ•˜๊ธฐ