Special HTTP headers
Словники та інструменти
Заголовки для зміни місця
Перезаписати 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
Заголовок hop-by-hop - це заголовок, який призначений для обробки та споживання проксі, що наразі обробляє запит, на відміну від заголовка end-to-end.
Connection: close, X-Forwarded-For
HTTP Request Smuggling
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)
Content Security Policy (CSP) BypassДовірені типи
Забезпечуючи Довірені типи через CSP, програми можуть бути захищені від атак DOM XSS. Довірені типи гарантують, що лише спеціально створені об'єкти, які відповідають встановленим політикам безпеки, можуть використовуватися в небезпечних викликах веб-API, тим самим забезпечуючи безпеку JavaScript-коду за замовчуванням.
X-Content-Type-Options
Цей заголовок запобігає визначенню типу MIME, практика, яка може призвести до вразливостей XSS. Він забезпечує, щоб браузери поважали типи MIME, вказані сервером.
X-Frame-Options
Щоб боротися з клікджекингом, цей заголовок обмежує, як документи можуть бути вбудовані в <frame>
, <iframe>
, <embed>
, або <object>
теги, рекомендується всім документам явно вказувати свої дозволи на вбудовування.
Політика ресурсів з крос-доменним доступом (CORP) та обмін ресурсами з крос-доменним доступом (CORS)
CORP є важливим для визначення, які ресурси можуть бути завантажені веб-сайтами, зменшуючи крос-сайтові витоки. CORS, з іншого боку, дозволяє більш гнучкий механізм обміну ресурсами з крос-доменним доступом, послаблюючи політику однакового походження за певних умов.
Політика вбудовування з різних джерел (COEP) та політика відкриття з різних джерел (COOP)
COEP та COOP є важливими для забезпечення ізоляції з різних джерел, значно зменшуючи ризик атак, подібних до Spectre. Вони контролюють завантаження ресурсів з різних джерел та взаємодію з вікнами з різних джерел відповідно.
HTTP Strict Transport Security (HSTS)
Нарешті, HSTS - це функція безпеки, яка змушує браузери спілкуватися з серверами лише через захищені HTTPS з'єднання, тим самим підвищуючи конфіденційність і безпеку.
References
Last updated