Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
GLUFS — Автоматизированный инструмент эксплуатации уязвимости форматной строки для обнаружения утечек stack, PIE и canary с возможностью поиска флага через спецификаторы %s или %p. | Kitploit
Инструменты/GitHubGitHub/diego-altf4/glufs
Анализ уязвимостейЭксплуатацияФаззингЭксплуатация Бинарных Файлов
GitHubdiego-altf4/glufs

GLUFS

Автоматизированный инструмент эксплуатации уязвимости форматной строки для обнаружения утечек stack, PIE и canary с возможностью поиска флага через спецификаторы %s или %p.

Репозиторий
27434 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться


Получение утечек с помощью форматной строки.

root@kitploit:~
                    .d8888b.       888       888     888   8888888888   .d8888b.  
                    d88P  Y88b     888       888     888   888         d88P  Y88b 
                    888    888     888       888     888   888         Y88b.      
                    888            888       888     888   8888888      "Y888b.   
                    888  88888     888       888     888   888             "Y88b. 
                    888    888     888       888     888   888               "888 
                    Y88b  d88P     888       Y88b. .d88P   888         Y88b  d88P 
                    "Y8888P88      88888888   "Y88888P"    888          "Y8888P"                                                    

                                           By: DiegoAltF4

Введение

GLUFS позволяет автоматизировать утомительный процесс поиска утечек с помощью уязвимостей форматной строки. Он позволяет находить стековые утечки, утечки PIE и canary-утечки, в каждом случае указывая полезную нагрузку, обеспечивающую утечку. Кроме того, он включает режим, позволяющий искать строку "flag" в утечках. Для этого режима можно использовать спецификаторы %s или %p.

Параметры

ПараметрИнформация
-bВыберите этот параметр, чтобы указать эксплуатируемый бинарный файл.
-maxВыберите этот параметр, чтобы указать максимальное тестируемое значение. Диапазон: (min, max). По умолчанию max = 40
-minВыберите этот параметр, чтобы указать минимальное тестируемое значение. Диапазон: (min, max). По умолчанию min = 1
-ipВыберите этот параметр, чтобы указать IP-адрес удалённого сервера.
-portВыберите этот параметр, чтобы указать порт удалённого сервера.
-flagВыберите этот параметр, чтобы указать начало искомого флага.
-archВыберите этот параметр, чтобы задать архитектуру (32 или 64).
--sВыберите этот параметр, чтобы использовать %s вместо %p.
--canaryВыберите этот параметр, чтобы найти позицию, где находится canary-утечка.
--leaksВыберите этот параметр, чтобы вывести все найденные утечки.
--pieВыберите этот параметр, чтобы найти позицию, где находится PIE-утечка.
--stackВыберите этот параметр, чтобы найти позицию, где находится стековая утечка.
--vВыберите этот параметр, чтобы включить подробный режим.

Примеры использования

1️⃣ Первый пример ~ комната TryHackMe pwn101

Для этого примера мы воспользуемся GLUFS, чтобы получить PIE- и canary-утечку.

Бинарный файл, который мы возьмём в качестве примера, соответствует заданию 7 комнаты TryHackMe pwn101 TryHackMe room pwn101.

Мы используем опцию -b для указания бинарного файла, -min для указания начального значения итерации и -max для указания конечного значения итерации. Кроме того, мы хотим получить информацию о canary и PIE.

root@kitploit:~
./glufs.py -b ./pwn107.pwn107 -min 5 -max 15 --pie --canary

image

Демо:

asciicast

2️⃣ Второй пример ~ чтение переменной окружения Confused из 247CTF

Для этого примера мы воспользуемся GLUFS, чтобы получить флаг.

Задача, которую мы решаем — Confused environment read с платформы 247CTF.

В этом примере мы не используем бинарный файл. У нас есть только IP и порт. Поэтому мы используем опцию -ip для указания адреса, -port для указания порта, -flag для указания начала искомого флага. Кроме того, так как у нас нет бинарного файла, нужно указать архитектуру, в данном случае x86-64 (-arch 64). Мы также укажем начало итерации с помощью -min и конец итерации с помощью -max. Кроме того, мы используем опцию -s, чтобы использовать %s вместо %p.

root@kitploit:~
./glufs.py -ip 3bcbadabd1a7e914.247ctf.com -port 50387 -flag 247CTF -arch 64 -min 1 -max 200 --s

image

Демо:

asciicast

3️⃣ Третий пример ~ утечка флага из PicoCTF

Для этого примера мы воспользуемся GLUFS, чтобы получить флаг.

Задача, которую мы решаем — flag leak с платформы PicoCTF.

В этом примере мы используем опцию -ip для указания адреса сервера, -port для указания порта сервера, -b для указания бинарного файла, -flag для указания начала флага и, наконец, указываем начало и конец итерации с помощью -min и -max. Если не указать опцию --s, по умолчанию будет использоваться формат %p.

root@kitploit:~
./glufs.py -ip saturn.picoctf.net  -port 50563 -b ./vuln  -flag picoCTF -min 20 -max 200

image

Демо:

asciicast

Установка:

root@kitploit:~
git clone https://github.com/Diego-AltF4/GLUFS.git
cd GLUFS/
pip3 install -r requirements.txt
chmod +x ./glufs.py 

Конфигурация:

Очень важно изменить код, чтобы адаптировать его под ваш бинарный файл/задачу. Для этого в коде есть два размеченных раздела, в которых необходимо внести изменения, чтобы получить утечку форматной строки, а также настроить момент отправки полезной нагрузки.

Примеры: Для задачи picoCTF, описанной выше, используется следующая конфигурация:

root@kitploit:~
#######################################################################
#      This is the part that you must modify to fit your binary.      #
#######################################################################
p.sendlineafter(b'>>', payload)
p.recvuntil(b'-')
leak = p.recv().strip(b'\n')
#print(leak) ## For debugging errors
#######################################################################	
Скачать инструмент