Я действующий сетевой инженер, расскажу вам о сетях в доступной форме.
Реклама - @bashmak_media
Мы на бирже: https://telega.in/c/school_network
РКН: https://vk.cc/cHYqt5
Post #2889
657

👋
🟣Например, хочется понять, кто вообще публикует
🟣webcensus собирает это в конвейер из нескольких этапов:
Сначала
🟣Дальше в дело вступает собственный Rust-пробер
Инструмент читает только HTTP status line:
Поэтому из миллионов адресов дальше проходят только те, где HTTPS вообще поднялся и нужный путь вернул
🟣И только теперь начинается полноценная загрузка.
Например:
Это важно, потому что сервер вполне может ответить
🟣После скачивания webcensus ещё раз проверяет содержимое уже локально. HTML-страницы, JSON-ошибки, бинарный мусор и слишком короткие ответы отбрасываются.
Получается важная разница:
Например, сайт может отдавать одну и ту же SPA-страницу на любой URL с кодом
🟣Весь процесс запускается внутри Docker, а каждый этап оставляет результат в
Серверная Админа | Zeroday | #Инструмент
Привет, сетевой друг! Сегодня про webcensus - инструмент для довольно специфичной задачи: найти один и тот же URL-путь сразу на огромном количестве сайтов.🟣Например, хочется понять, кто вообще публикует
/.well-known/security.txt, robots.txt, ads.txt или sitemap.xml. Перебирать сайты по одному здесь явно не вариант.🟣webcensus собирает это в конвейер из нескольких этапов:
список доменов
↓
DNS
↓
HTTPS probe
↓
скачивание
↓
проверка файла
Сначала
massdns быстро резолвит миллионы доменов и оставляет только те, у которых есть A-запись.🟣Дальше в дело вступает собственный Rust-пробер
skim. Он подключается к :443, выполняет TLS handshake и отправляет обычный HTTP-запрос к нужному пути. Но самое интересное - тело ответа на этом этапе вообще не скачивается. Инструмент читает только HTTP status line:
{"url":"https://example.com/.well-known/security.txt","status":"success","code":200,"cert_ok":true}Поэтому из миллионов адресов дальше проходят только те, где HTTPS вообще поднялся и нужный путь вернул
200.🟣И только теперь начинается полноценная загрузка.
curl --parallel скачивает найденные URL пачками, причём для каждого запроса есть ограничения по размеру, времени и числу повторных попыток.Например:
--parallel-max 50
--max-filesize 5M
--max-time 10
--connect-timeout 3
--retry 2
Это важно, потому что сервер вполне может ответить
200, а вместо маленького security.txt отдать несколько мегабайт HTML.🟣После скачивания webcensus ещё раз проверяет содержимое уже локально. HTML-страницы, JSON-ошибки, бинарный мусор и слишком короткие ответы отбрасываются.
Получается важная разница:
HTTP 200
≠
нужный файл действительно существует
Например, сайт может отдавать одну и ту же SPA-страницу на любой URL с кодом
200. Для простого сканера это найденный файл, для webcensus - мусор.🟣Весь процесс запускается внутри Docker, а каждый этап оставляет результат в
data/. Можно остановиться после любого шага и продолжить с него, а локальный этап проверки вообще не требует повторно ходить в интернет.Серверная Админа | Zeroday | #Инструмент
- 👍 2














