format-string-exploitation
Плейбук эксплуатации форматных строк. Применяется, когда функции семейства printf получают управляемые пользователем строки формата, что позволяет читать стек (%p/%s), записывать память (%n/%hn/%hhn), перезаписывать GOT/хуки и утекать canary/libc/PIE.
Что делает навык
Плейбук эксплуатации уязвимостей форматных строк, позволяющий читать стек, записывать память и перезаписывать указатели через функции семейства printf. Применяется для получения информации (canary, libc, PIE) и достижения произвольной записи памяти для выполнения кода.
Когда применять
- Чтение данных из стека с помощью спецификаторов %p и %s
- Произвольная запись в память через спецификаторы %n, %hn, %hhn
- Перезапись таблиц GOT или хуков (например, __malloc_hook) для получения RCE
- Обход защиты FORTIFY_SOURCE и работа с 64-битными нуль-байтами
- Комбинация с переполнением стека (stack-overflow-and-rop) для полного контроля
Как работает
- Идентифицировать уязвимый паттерн, где пользовательский ввод передается как строка формата в функции printf
- Использовать спецификаторы %p или %s для утечки адресов из стека (canary, libc, PIE)
- Применить спецификаторы %n, %hn или %hhn для записи значений в произвольные адреса памяти
- Сконструировать цепочку указателей или перезаписать GOT/хуки для выполнения произвольного кода
- Автоматизировать процесс с помощью pwntools, учитывая особенности 64-битных адресов и позиционных параметров
Примеры запросов агенту
Что понадобится
- pwntools
- бинарный файл с уязвимостью форматной строки
- доступ к исходному коду или отладочной информации (для точного расчета смещений)
Описание составлено по SKILL.md навыка, сверено 07.10.2026.
Как подключить
SKILL.md к навыкам ассистентаНавык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.