Chrome Cache to XSS

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

More in depth details in this writeup.

рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рддрдХрдиреАрдХ рджреЛ рдкреНрд░рдореБрдЦ рдХреИрд╢ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ: back/forward cache (bfcache) рдФрд░ disk cacheред bfcache, рдЬреЛ рдПрдХ рдкреГрд╖реНрда рдХрд╛ рдПрдХ рд╕рдВрдкреВрд░реНрдг рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ JavaScript heap рд╢рд╛рдорд┐рд▓ рд╣реИ, рдмреИрдХ/рдлреЙрд░рд╡рд░реНрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рдбрд┐рд╕реНрдХ рдХреИрд╢ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреА рдЬрд╛рддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд░рдЦрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, рдбрд┐рд╕реНрдХ рдХреИрд╢, рд╡реЗрдм рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдмрд┐рдирд╛ JavaScript heap рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП, рдФрд░ рд╕рдВрдЪрд╛рд░ рд▓рд╛рдЧрдд рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреИрдХ/рдлреЙрд░рд╡рд░реНрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдбрд┐рд╕реНрдХ рдХреИрд╢ рдХрд╛ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкрд╣рд▓реВ рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ fetch рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рд╕рдВрд╕рд╛рдзрди рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдП рдЧрдП URL рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдХреИрд╢ рд╕реЗ рд░реЗрдВрдбрд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

Key Points:

  • bfcache рдмреИрдХ/рдлреЙрд░рд╡рд░реНрдб рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдВ рдбрд┐рд╕реНрдХ рдХреИрд╢ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рд░рдЦрддрд╛ рд╣реИред

  • рдбрд┐рд╕реНрдХ рдХреИрд╢ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, bfcache рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред

Disabling bfcache:

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, Puppeteer bfcache рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ, рдЬреЛ Chromium рдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред bfcache рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рднрд╛рд╡реА рддрд░реАрдХрд╛ RelatedActiveContentsExist рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ window.open() рдХреЗ рд╕рд╛рде рдПрдХ рдкреГрд╖реНрда рдЦреЛрд▓рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ window.opener рдХрд╛ рд╕рдВрджрд░реНрдн рдмрдирд╛рдП рд░рдЦрддрд╛ рд╣реИред

Reproducing the behavior:

  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 рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдбрд┐рд╕реНрдХ рдХреИрд╢ рдХреЗ рд░реВрдк рдореЗрдВ рдХреИрд╢ рдХрд░рддреА рд╣реИред

  4. history.back() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдпрд╣ рдХреНрд░рд┐рдпрд╛ рдкреГрд╖реНрда рдкрд░ рдХреИрд╢ рдХреА рдЧрдИ JSON рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рджреЗрддреА рд╣реИред

рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдХрд┐ рдбрд┐рд╕реНрдХ рдХреИрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, Google Chrome рдореЗрдВ DevTools рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

bfcache рдФрд░ рдбрд┐рд╕реНрдХ рдХреИрд╢ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рдВрджрд░реНрдн web.dev on bfcache рдФрд░ Chromium's design documents on disk cache рдкрд░ рдкрд╛рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated