Special HTTP headers
Last updated
Last updated
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Перезаписати IP джерела:
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Forwarded: 127.0.0.1
Forwarded-For: 127.0.0.1
X-Forwarded-Host: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-ProxyUser-Ip: 127.0.0.1
X-Original-URL: 127.0.0.1
Client-IP: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Host: 127.0.0.1
True-Client-IP: 127.0.0.1
Cluster-Client-IP: 127.0.0.1
Via: 1.0 fred, 1.1 127.0.0.1
Connection: close, X-Forwarded-For
(Перевірте заголовки hop-by-hop)
Перезаписати місце:
X-Original-URL: /admin/console
X-Rewrite-URL: /admin/console
Заголовок hop-by-hop - це заголовок, який призначений для обробки та споживання проксі, що наразі обробляє запит, на відміну від заголовка end-to-end.
Connection: close, X-Forwarded-For
Content-Length: 30
Transfer-Encoding: chunked
Заголовки кешу сервера:
X-Cache
у відповіді може мати значення miss
, коли запит не кешувався, і значення hit
, коли він кешується
Схоже поводження у заголовку Cf-Cache-Status
Cache-Control
вказує, чи ресурс кешується і коли буде наступний раз кешуватися: Cache-Control: public, max-age=1800
Vary
часто використовується у відповіді для вказівки додаткових заголовків, які розглядаються як частина ключа кешу, навіть якщо вони зазвичай не мають ключа.
Age
визначає час у секундах, протягом якого об'єкт перебував у кеші проксі.
Server-Timing: cdn-cache; desc=HIT
також вказує, що ресурс був кешований
Заголовки локального кешу:
Clear-Site-Data
: Заголовок для вказівки кешу, який слід видалити: Clear-Site-Data: "cache", "cookies"
Expires
: Містить дату/час, коли відповідь повинна закінчитися: Expires: Wed, 21 Oct 2015 07:28:00 GMT
Pragma: no-cache
те ж саме, що Cache-Control: no-cache
Warning
: Загальний HTTP заголовок Warning
містить інформацію про можливі проблеми зі статусом повідомлення. У відповіді може з'явитися більше одного заголовка Warning
. Warning: 110 anderson/1.3.37 "Response is stale"
Запити, що використовують ці заголовки: If-Modified-Since
та If-Unmodified-Since
, будуть відповідати даними лише якщо заголовок відповіді**Last-Modified
** містить інший час.
Умовні запити, що використовують If-Match
та If-None-Match
, використовують значення Etag, тому веб-сервер надішле вміст відповіді, якщо дані (Etag) змінилися. Etag
береться з HTTP-відповіді.
Значення Etag зазвичай обчислюється на основі вмісту відповіді. Наприклад, ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"
вказує, що Etag
є Sha1 з 37 байтів.
Accept-Ranges
: Вказує, чи підтримує сервер запити діапазону, і якщо так, в якій одиниці може бути виражений діапазон. Accept-Ranges: <range-unit>
Range
: Вказує частину документа, яку сервер повинен повернути.
If-Range
: Створює умовний запит діапазону, який виконується лише якщо вказаний etag або дата збігаються з віддаленим ресурсом. Використовується для запобігання завантаженню двох діапазонів з несумісних версій ресурсу.
Content-Range
: Вказує, де в повному тілі повідомлення належить часткове повідомлення.
Content-Length
: Розмір ресурсу, у десятковому числі байтів.
Content-Type
: Вказує медіа-тип ресурсу
Content-Encoding
: Використовується для вказівки алгоритму стиснення.
Content-Language
: Описує людську мову(и), призначену для аудиторії, щоб дозволити користувачу відрізняти відповідно до власної переважної мови.
Content-Location
: Вказує альтернативне місце для повернених даних.
З точки зору pentest ця інформація зазвичай "недоступна", але якщо ресурс захищений 401 або 403 і ви можете знайти якийсь спосіб отримати цю інформацію, це може бути цікаво.
Наприклад, комбінація Range
та Etag
у запиті HEAD може витікати вміст сторінки через запити HEAD:
Запит з заголовком Range: bytes=20-20
і з відповіддю, що містить ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"
, витікає, що SHA1 байта 20 є ETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y
Server: Apache/2.4.1 (Unix)
X-Powered-By: PHP/5.3.3
Allow
: Цей заголовок використовується для спілкування HTTP методів, які ресурс може обробляти. Наприклад, він може бути вказаний як Allow: GET, POST, HEAD
, що вказує, що ресурс підтримує ці методи.
Expect
: Використовується клієнтом для передачі очікувань, які сервер повинен виконати для успішної обробки запиту. Загальне використання включає заголовок Expect: 100-continue
, який сигналізує, що клієнт має намір надіслати великий обсяг даних. Клієнт чекає на відповідь 100 (Continue)
перед продовженням передачі. Цей механізм допомагає оптимізувати використання мережі, очікуючи підтвердження від сервера.
Заголовок Content-Disposition
у HTTP-відповідях вказує, чи файл повинен відображатися вбудовано (в межах веб-сторінки) або розглядатися як додаток (завантажений). Наприклад:
Це означає, що файл з назвою "filename.jpg" призначений для завантаження та збереження.
Забезпечуючи Довірені типи через CSP, програми можуть бути захищені від атак DOM XSS. Довірені типи гарантують, що лише спеціально створені об'єкти, які відповідають встановленим політикам безпеки, можуть використовуватися в небезпечних викликах веб-API, тим самим забезпечуючи безпеку JavaScript-коду за замовчуванням.
Цей заголовок запобігає визначенню типу MIME, практика, яка може призвести до вразливостей XSS. Він забезпечує, щоб браузери поважали типи MIME, вказані сервером.
Щоб боротися з клікджекингом, цей заголовок обмежує, як документи можуть бути вбудовані в <frame>
, <iframe>
, <embed>
, або <object>
теги, рекомендується всім документам явно вказувати свої дозволи на вбудовування.
CORP є важливим для визначення, які ресурси можуть бути завантажені веб-сайтами, зменшуючи крос-сайтові витоки. CORS, з іншого боку, дозволяє більш гнучкий механізм обміну ресурсами з крос-доменним доступом, послаблюючи політику однакового походження за певних умов.
COEP та COOP є важливими для забезпечення ізоляції з різних джерел, значно зменшуючи ризик атак, подібних до Spectre. Вони контролюють завантаження ресурсів з різних джерел та взаємодію з вікнами з різних джерел відповідно.
Нарешті, HSTS - це функція безпеки, яка змушує браузери спілкуватися з серверами лише через захищені HTTPS з'єднання, тим самим підвищуючи конфіденційність і безпеку.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)