Cache Poisoning Attack

2022. 11. 26. 14:25ยท๐Ÿ–Œ๏ธ Theory/WEB

Basic of Caching

Cache๋ž€ Web Server์™€ User ์‚ฌ์ด์— ์œ„์น˜ํ•˜์—ฌ Web Service๊ฐ„์˜ ํ†ต์‹ ์„ ํšจ์œจ์ ์œผ๋กœ ๋„์™€์ค€๋‹ค.

 

   Web Server์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ด Cache์— ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋‘๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์„œ๋น„์Šค ์†๋„ ํ–ฅ์ƒ์„ ํ† ์™€์ฃผ๋Š” ๊ฒƒ์„ Caching์ด๋ผ ํ•œ๋‹ค.

   Web Server ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Browser์—๋„ Cache๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์›น ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ Loadํ•˜๊ธฐ ์œ„ํ•ด ๋กœ์ปฌ PC์— ์ด๋ฏธ์ง€, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค. User๊ฐ€ Cache ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด๋‘” Website์— ์ ‘๊ทผ ์‹œ, ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฒŒ ์•„๋‹Œ, ๋กœ์ปฌ PC์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ Loadํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„ ์ธก๋ฉด์—์„œ ๋น ๋ฅด๋‹ค. (๋Œ€ํ‘œ์ ์ธ Cache๋ฅผ ์ด์šฉํ•˜๋Š” ์„œ๋น„์Šค๋กœ๋Š” CDN์ด ์žˆ๋‹ค.)

 

Explanation about Cache Keys

์›น์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค Cache๋Š” ์š”์ฒญ์„ ์„œ๋ฒ„๋กœ ์ „์†กํ•ด์•ผํ•  ์ง€, ์•„๋‹ˆ๋ฉด ์ด๋ฏธ ๋กœ์ปฌ PC์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋กœ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ์„ ์ง€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๊ฐ’์ด Cache Key๋‹ค. Cache Key๋Š” ์„œ๋ฒ„์— ์š”์ฒญ๋˜๋Š” ๊ฐ’ ์ผ๋ถ€๋ฅผ ๋–ผ์–ด๋‚ด์„œ Request ์ผ๋ถ€์™€ ์ƒ์‘ํ•˜๋Š” Response๋ฅผ ์ €์žฅํ•œ๋‹ค. (Request์˜ ๋ชจ๋“  ๋ถ€๋ถ„์„ ํ™•์ธํ•˜์ง€ ์•Š๋Š”๋‹ค.)

 

๋ณดํ†ต Host, Path๋ฅผ ์‹ ๋ขฐํ•œ๋‹ค.

Example

์œ„ Request์—์„œ ์˜ค๋ Œ์ง€ ์ƒ‰์œผ๋กœ ์น ํ•ด์ง„ ๋ถ€๋ถ„์ด ์ผ๋ฐ˜์ ์ธ Cache Key๋‹ค.

 

What is Cache Poisoning Attack?

๋ฌธ์ž ๊ทธ๋Œ€๋กœ Cache์— ์•…์˜์ ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚จ๊ฒจ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ๋™์ž‘์„ ํ•˜๋„๋ก ํ•˜๋Š” ๊ณต๊ฒฉ์ด๋‹ค.

 

ํ๋ฆ„ ๊ฐ„๋‹จ ์š”์•ฝ :

Case Study :

๋ ˆํผ๋Ÿฐ์Šค์— ๋งŽ์€ ๊ณต๊ฒฉ ์ผ€์ด์Šค๊ฐ€ ์žˆ๋Š”๋ฐ, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๊ฒƒ๋งŒ ์‚ดํŽด๋ณด์ž. PortSwigger๊ฐ€ Redhat์— ๋ณด๊ณ ํ•œ ๋‚ด์šฉ์ด๋‹ค.

 

์œ„ ์š”์ฒญ์—์„œ ๊ณต๊ฒฉ์ž๊ฐ€ X-Forwarded-Host ํ—ค๋”๊ฐ€ meta ํƒœ๊ทธ ์•ˆ์—์„œ URL์„ ์ƒ์„ฑ๋˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ ๊ฒƒ์„ Response์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ํ—ค๋”๋ฅผ ์กฐ์ž‘ํ•˜์—ฌ XSS ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉด Reflected XSS Trigger๊ฐ€ ๊ฐ€๋Šฅํ•ด์ง„๋‹ค.

XSS ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ Cache๋กœ ์ €์žฅ๋œ ํ›„, ๋‹ค๋ฅธ User๋“ค์—๊ฒŒ ์ „๋‹ฌ๋˜๋ฉด User์ธก์—์„œ Reflected XSS๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

์ด์™ธ Case๋“ค์€ ๋ ˆํผ๋Ÿฐ์Šค๋“ค์„ ํ†ตํ•ด ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

Reference : 

https://portswigger.net/kb/papers/7q1e9u9a/web-cache-poisoning.pdf%20

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ–Œ๏ธ Theory/WEB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Phar Deserialization
  • XXE Injection (Basic Concept & Real World Case)
  • PHP HEAD Method Trick (GDG Algiers CTF 2022)
  • Advanced Tips For SSRF Attack
Cronus
Cronus
Offensive Security Researcher
  • Cronus
    Cronus
    Striving to be the best.
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (251)
      • AboutMe (1)
      • Portfolio (1)
        • Things (1)
      • Bug Report (1)
      • ๐Ÿšฉ CTF (23)
        • Former Doc (9)
        • 2023 (9)
      • ๐Ÿ’ป Security (5)
      • ๐Ÿ–Œ๏ธ Theory (22)
        • WEB (9)
        • PWN (13)
      • ๐Ÿ“„ Project (6)
        • Edu_Siri (6)
      • Dreamhack (156)
        • WEB (95)
        • PWN (41)
        • Crypto (14)
        • ETC (6)
      • Wargame (22)
        • HackCTF (22)
      • Bug Bounty (1)
        • Hacking Zone (1)
      • Tips (7)
      • Development (2)
        • Machine Learning & Deep Lea.. (1)
      • Offensive Tools (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    bug hunter
    pwntools
    Deep learning
    Crypto
    bug report
    Machine Learning
    TFCCTF2022
    Ubuntu ๊ธฐ์ดˆ
    Text Summarization
    justCTF
    TsukuCTF2022
    GPNCTF
    RCE
    sqli
    Ubuntu ๊ธฐ์ดˆ ์…‹ํŒ…
    python
    ubuntu ๋ช…๋ น์–ด
    cache poisoning
    cache
    Remote Code Execution
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

Cronus
Cache Poisoning Attack
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”