CF ssrf
Ищите подделку запросов на стороне сервера (CWE-918) — любой исходящий запрос, URL, схема, хост или порт которого производятся из другого запроса. Активируется для аватара по URL, регистрации веб-хуков/обратных вызовов, предварительного просмотра/развертывания URL, рендеринга в PDF/снимка экрана/миниатюры, импорта из URL, приема фидов, обнаружения OAuth redirect_uri/jwks_uri, проб "проверить соединение", прокси и передачи медиа, а также для вспомогательных функций с именами download/fetch/get_image/get_base64_image_blob/load_url, тела которых вы не видите. Поставляется probe.sh, который сканирует приемники fetch в семи экосистемах, контракты URL-параметров, их сайты вызовов и политику белых списков за один проход. Ключевые слова SSRF, requests.get, urlopen, httpx, fetch, axios, OkHttp, curl_exec, 169.254.169.254, метаданные облака, gopher://, allow_redirects, DNS rebinding, blind SSRF, URLField.
машинный переводПоказать оригиналСкрыть оригинал«Hunt Server-Side Request Forgery (CWE-918) — any outbound fetch whose…»
Hunt Server-Side Request Forgery (CWE-918) — any outbound fetch whose URL, scheme, host or port derives from a request. Activate on avatar-by-URL, webhook/callback registration, URL preview/unfurl, render-to-PDF/screenshot/thumbnailer, import-from-URL, feed ingest, OAuth redirect_uri/jwks_uri discovery, "test connection" probes, proxy and media passthrough, and on helpers named download/fetch/get_image/get_base64_image_blob/load_url whose bodies you cannot see. Ships probe.sh, which greps fetch sinks across seven ecosystems, url-parameter contracts, their call sites and allow-list posture in one pass. Keywords SSRF, requests.get, urlopen, httpx, fetch, axios, OkHttp, curl_exec, 169.254.169.254, cloud metadata, gopher://, allow_redirects, DNS rebinding, blind SSRF, URLField.
Скилл ловит SSRF-уязвимости — когда приложение делает запросы по URL из пользовательского ввода. Обещает найти fetch-вызовы во всех семи экосистемах и проверить, защищены ли они от внутренних адресов.
В папке два файла и скрипт probe.sh, который ищет по ключевым словам (requests.get, httpx, fetch, curl_exec и прочее). На моделях не запускался. Качество кода — 65 баллов, процесс — 28. Критических находок нет, но и валидации результатов не видно.
Скилл работает как grep по исходникам, а не как анализ потоков данных. Поймает очевидные случаи, но пропустит косвенные вызовы и сложные цепочки. Для быстрого скана годится, для полного аудита — нет.
Ищите подделку запросов на стороне сервера (CWE-918) — любой исходящий запрос, URL, схема, хост или порт которого производятся из другого запроса.
Как процесс F 28/100 · Процесс не описан — слабые места: шаги, результат и критерий готовности, когда включается
Как улучшить
- Скажите в description, КОГДА применять скилл («используй, когда…», примеры запросов): это главный сигнал для агента.
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 0
✓ Критических и высоких находок нет
Просканировано файлов: 2. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- предупреждение
description-no-whendescription не говорит, КОГДА применять скилл (нет "use when / используй когда")
Процессный рейтинг: все десять параметров 28/100
- 0Шаги. Инструкция сплошным текстом, шаги не выделены
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 30Повторный запуск. Изменяющих операций: 3, без проверки текущего состояния
- 60Инструменты и файлы. Используются инструменты (web), но во frontmatter они не объявлены
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1334 токенов
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Нет пошаговых инструкций или чек-листа
- +3Формат ответа не описан: модель каждый раз решает сама
- +4Нет примеров входа/выхода
- +1Лицензия не указана
- +2Инструкции на одном языке
- +3Длина description 784 символов: достаточно сигнала, не съедает бюджет
- +4Структура: 6 заголовков
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 65.