Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 753

one_gadget RCE

Что такое one_gadget RCE?

one_gadget RCEЭксплойтерский шорткат (в CTF и на практике): вызвав один адрес libc при выполнении ограничений на регистры и стек, можно получить shell.


one_gadget — это последовательность инструкций внутри glibc, которая в итоге вызывает execve("/bin/sh", NULL, NULL), если попасть в неё с нужными значениями регистров и стека. Утилита one_gadget от david942j сканирует libc и перечисляет такие адреса вместе с их ограничениями (rax == 0, rsp+0x40 == NULL и т. д.). Если атакующий может перехватить один указатель на функцию или адрес возврата (GOT overwrite, атаки на FILE-стримы, unsorted bin), он получает shell без построения полной ROP-цепочки. Условия требуется аккуратно удовлетворить вспомогательными гаджетами или stack pivot. Меры защиты: constant blinding, CFI, seccomp-песочницы и stripped/модифицированные libc без канонических гаджетов.

Примеры

  1. 01

    Запуск /bin/sh через one_gadget после единственного GOT overwrite в бинарнике с libc-2.31.

  2. 02

    FILE-stream эксплойт портит vtable у _IO_2_1_stdout_ и переходит к выполнимому one_gadget.

Частые вопросы

Что такое one_gadget RCE?

Эксплойтерский шорткат (в CTF и на практике): вызвав один адрес libc при выполнении ограничений на регистры и стек, можно получить shell. Относится к категории Атаки и угрозы в кибербезопасности.

Что означает one_gadget RCE?

Эксплойтерский шорткат (в CTF и на практике): вызвав один адрес libc при выполнении ограничений на регистры и стек, можно получить shell.

Как работает one_gadget RCE?

one_gadget — это последовательность инструкций внутри glibc, которая в итоге вызывает execve("/bin/sh", NULL, NULL), если попасть в неё с нужными значениями регистров и стека. Утилита one_gadget от david942j сканирует libc и перечисляет такие адреса вместе с их ограничениями (rax == 0, rsp+0x40 == NULL и т. д.). Если атакующий может перехватить один указатель на функцию или адрес возврата (GOT overwrite, атаки на FILE-стримы, unsorted bin), он получает shell без построения полной ROP-цепочки. Условия требуется аккуратно удовлетворить вспомогательными гаджетами или stack pivot. Меры защиты: constant blinding, CFI, seccomp-песочницы и stripped/модифицированные libc без канонических гаджетов.

Как защититься от one_gadget RCE?

Защита от one_gadget RCE обычно сочетает технические меры и операционные практики, как описано в определении выше.

Какие есть другие названия one_gadget RCE?

Распространённые альтернативные названия: one_gadget.

Связанные термины