AD hunt-file-upload
Поиск ошибок загрузки файлов — удаленное выполнение кода через веб-шелл, XSS через SVG/HTML, SSRF через XXE в DOCX, обход пути через имя файла. Таблицы обхода (10 методов): двойное расширение (shell.php.jpg, если сервер проверяет последнее расширение), подмена магических байтов (заголовок PNG в PHP), нулевой байт (shell.php .jpg), регистр (PHP, .Php, .pHP), загрузка .htaccess для включения выполнения, SVG с <script>, XSS в HTML/SVG, DOCX со встроенным XXE, ZIP-слип (../../../etc/passwd в архиве), полиглотные файлы. Обнаружение: любой конечный пункт /upload, /avatar, /profile-picture, /attachment, /import. Тест: загрузить PHP/JSP/ASPX оболочки, запросить по прямому URL, проверить ответ. Проверка: фактическое выполнение кода (вывод whoami) для RCE; отраженный XSS в URL фотографии профиля. Используйте при тестировании функций загрузки файлов, конечных точек аватаров/вложений, функций импорта/экспорта, процессоров XML/DOCX/ZIP. Реальные платные примеры.
машинный переводПоказать оригиналСкрыть оригинал«Hunt file upload bugs — RCE via webshell, XSS via SVG/HTML, SSRF via X…»
Hunt file upload bugs — RCE via webshell, XSS via SVG/HTML, SSRF via XXE in DOCX, path traversal via filename. Bypass tables (10 techniques): double extension (shell.php.jpg if server checks last ext only), magic bytes spoofing (PNG header on PHP), null byte (shell.php .jpg), case (PHP, .Php, .pHP), .htaccess upload to enable execution, SVG with <script>, HTML/SVG XSS, DOCX with embedded XXE, ZIP slip (../../../etc/passwd in archive), polyglot files. Detection: any /upload, /avatar, /profile-picture, /attachment, /import endpoint. Test: upload PHP/JSP/ASPX shells, request via direct URL, check response. Validate: actual code execution (whoami output) for RCE; reflected XSS in profile-photo URL. Use when testing file upload features, avatar/attachment endpoints, import/export functions, XML/DOCX/ZIP processors. Real paid examples.
Поиск ошибок загрузки файлов — удаленное выполнение кода через веб-шелл, XSS через SVG/HTML, SSRF через XXE в DOCX, обход пути через имя файла.
Как процесс D 46/100 · Процесс не доведён — слабые места: результат и критерий готовности, когда включается, входы и предусловия
Как улучшить
- Свои кейсы (evals/evals.json, 4–6 реальных запросов с ожидаемыми ответами): тогда полная проверка прогонит именно их, а не черновик от модели.
- spec.yaml с триггерными фразами и утверждениями — контракт поведения для CI; `skilltest init` создаст шаблон.
Находки guard · 0
✓ Критических и высоких находок нет
Просканировано файлов: 1. Улики замаскированы. Пометки в серых чипах объясняют, почему серьёзность понижена.
По спецификации Agent Skills
- заметка
frontmatter-keyнеизвестное поле фронтматтера "sources" - заметка
frontmatter-keyнеизвестное поле фронтматтера "report_count" - заметка
edit-residueв тексте есть пометки об устаревшем (строки 150): проверьте, не остались ли старые правила рядом с новыми — полная проверка читает текст на противоречия
Процессный рейтинг: все десять параметров 46/100
- 0Результат и критерий готовности. Не сказано, что считать результатом
- 0Входы и предусловия. Не сказано, что нужно иметь на входе
- 0Ошибки и развилки. Линейный процесс без обработки сбоев
- 0Отчётность по ходу. Скилл ничего не сообщает по ходу работы
- 20Когда включается. Не сказано, при каком запросе скилл включается
- 60Инструменты и файлы. Используются инструменты (bash, web), но во frontmatter они не объявлены
- 100Шаги. Шагов: 6
- 100Согласованность. Имя и обязательные поля на месте
- 100Стоимость исполнения. Тело инструкции 1735 токенов
- 100Повторный запуск. Изменяющих операций нет
- low Ответ описан самодельной разметкой (3 тегов): типизированный вызов надёжнее
Всё перечисленное измерено по тексту скилла, а не оценено моделью: цифры проверяемы. Вес параметра тем больше, чем чаще из-за него процесс встаёт.
Сигналы качества
- +5В description нет примеров фраз, по которым скилл должен срабатывать
- +4Описание не говорит, когда скилл НЕ применять (ложные срабатывания)
- +3Длина description 841: рекомендуется 120–800 символов
- +3Формат ответа не описан: модель каждый раз решает сама
- +1Лицензия не указана
- +2Инструкции на одном языке
- +4Структура: 12 заголовков
- +3Пошаговые инструкции: 6 пунктов
- +4Есть примеры (6 блоков кода)
База качества 70; замечания lint вычитаются, сигналы прибавляют до 100. Итог: 79.