📕 Тройни в сетях
Сегодня не про баги, а про основы, которые многие путают. URI, URL, URN согласно RFC 3986 — в чём разница и зачем это знать пентестеру?
➡️1) URI (Uniform Resource Identifier) — "Унифицированный идентификатор ресурса". Это общий термин для всего, что однозначно идентифицирует ресурс: документ, сервис, изображение, устройство и т.д.
Примеры:
• https://domain.ru/login (это и URI, и URL)
• mailto:user@domain.ru (URI, но не URL и не URN)
• urn:uuid:6e8bc430-9c3a-11d9-9669-0800200c9a66 (URN, а значит, и URI)
URI включает два основных подтипа:
• URL — указывает местоположение ресурса.
• URN — указывает уникальное имя, но не путь.
Везде, где есть идентификация ресурсов (API, веб-приложения, сетевые протоколы), используются URI. Понимание их структуры помогает находить уязвимости (например, инъекции в схемах "data:", "javascript:" или нестандартных URI).
➡️2) URL (Uniform Resource Locator) — "Унифицированный указатель ресурса". Это частный случай URI, который отвечает на вопросы:
• Где находится ресурс?
• Как к нему обратиться?
Разбор структуры URL:
https://domain.ru:443/api/pay?amount=1000#something
• https:// — схема (протокол) — определяет способ доступа.
• domain.ru — хост (домен или IP) — адрес сервера, где расположен ресурс.
• :443 — порт — необязательный параметр (по умолчанию 80 для HTTP, 443 для HTTPS).
• /api/pay — путь к файлу — указывает на конкретный ресурс на сервере.
• ?amount=1000 — параметр запроса — дополнительные данные для запроса (частая цель для атак).
• #something — якорь — ссылка на определённую часть страницы, которая не передаётся на сервер.
URL является основным вектором для атак, например, IDOR, reflected XSS, SQLi, Open Redirect и т.д.
➡️3) URN (Uniform Resource Name) — "Унифицированное имя ресурса". Это уникальный идентификатор, который не зависит от местоположения. В отличие от URL, URN не указывает, как получить ресурс, а только как его назвать.
Примеры:
urn:isbn:0451450523 — идентификатор книги.
urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6 — уникальный UUID.
urn:ietf:rfc:2648 — ссылка на RFC-документ.
В корпоративных системах URN могут использоваться для внутренней идентификации (например, в SOAP-сервисах). Также иногда в логах или API встречаются URN вместо URL — важно понимать, что это и как с ними работать.
▎ Итоги
➡️URI — общее понятие, включающее URL и URN, но не ограничивающееся ими (например, mailto:);
➡️URL указывает местоположение ресурса, URN — только его уникальное имя;
➡️Для пентестера URL — основной вектор атак, а URN — источник информации о системе;
➡️В реальных системах бывают гибридные схемы (например, git:// + URN) — это требует отдельного анализа.
Нашли пасхалку?
Post #75
1.47K

- 👍 6
- ❤ 4