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

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

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

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

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

Категории

Все категории
Loading categories
gf — Обёртка вокруг grep, помогающая искать что-либо с помощью grep | Kitploit
Инструменты/GitHubGitHub/tomnomnom/gf
Утилиты общего назначенияРазведкаАнализ КодаСбор информацииОбнаружение Секретов
GitHubtomnomnom/gf

gf

Обёртка вокруг grep, помогающая искать что-либо с помощью grep

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

Популярное

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

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

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

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

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

gf

Обёртка над grep, позволяющая не вводить типовые шаблоны вручную.

Что? Зачем?

Я использую grep постоянно. При аудите кодовых баз, просмотре вывода meg или просто при работе с большими объёмами данных. Я часто в итоге использую довольно сложные шаблоны, например такой:

root@kitploit:~
▶ grep -HnrE '(\$_(POST|GET|COOKIE|REQUEST|SERVER|FILES)|php://(input|stdin))' *

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

Я написал gf, чтобы дать имена комбинациям шаблонов и флагов, которые я использую постоянно. Так что приведённая выше команда становится просто:

root@kitploit:~
▶ gf php-sources

Файлы шаблонов

Определения шаблонов хранятся в ~/.gf в виде небольших JSON-файлов, которые можно держать под системой контроля версий:

root@kitploit:~
▶ cat ~/.gf/php-sources.json
{
    "flags": "-HnrE",
    "pattern": "(\\$_(POST|GET|COOKIE|REQUEST|SERVER|FILES)|php://(input|stdin))"
}

Чтобы немного уменьшить длину и сложность шаблона, можно также указать список из нескольких шаблонов:

root@kitploit:~
▶ cat ~/.gf/php-sources-multiple.json
{
    "flags": "-HnrE",
    "patterns": [
        "\\$_(POST|GET|COOKIE|REQUEST|SERVER|FILES)",
        "php://(input|stdin)"
    ]
}

В каталоге examples есть ещё несколько примеров файлов шаблонов.

Вы можете использовать флаг -save, чтобы создавать файлы шаблонов из командной строки:

root@kitploit:~
▶ gf -save php-serialized -HnrE '(a:[0-9]+:{|O:[0-9]+:"|s:[0-9]+:")'

Автодополнение

В комплекте идёт скрипт автодополнения, так что вы можете нажать 'tab', чтобы увидеть доступные варианты:

root@kitploit:~
▶ gf <tab>
base64       debug-pages  fw           php-curl     php-errors   php-sinks    php-sources  sec          takeovers    urls

Bash

Чтобы автодополнение заработало, нужно выполнить source файла gf-completion.bash в вашем .bashrc или аналогичном файле:

root@kitploit:~
source ~/path/to/gf-completion.bash

Zsh

Чтобы автодополнение заработало, нужно включить автодополнение (не требуется, если у вас oh-my-zsh) с помощью autoload -U compaudit && compinit или добавив это в .zshrc

Затем выполните source файла gf-completion.zsh в вашем .zshrc или аналогичном файле:

root@kitploit:~
source ~/path/to/gf-completion.zsh

Примечание: если вы используете oh-my-zsh или подобное, вы можете обнаружить, что gf является алиасом для git fetch. Вы можете либо создать алиас для бинарника gf под другим именем, либо выполнить unalias gf, чтобы удалить алиас git fetch.

Использование собственных движков

Существуют отличные движки поиска по коду, которые могут стать лучшей заменой grep. Хороший пример — the silver searcher. Он быстрее (реально намного быстрее) и представляет результаты в более наглядном виде. Чтобы использовать другой движок, добавьте engine: <other tool> в соответствующий файл шаблона:

root@kitploit:~
# Using the silver searcher instead of grep for the aws-keys pattern:
# 1. Adding "ag" engine
# 2. Removing the E flag which is irrelevant for ag
{
  "engine": "ag",
  "flags": "-Hanr",
  "pattern": "([^A-Z0-9]|^)(AKIA|A3T|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{12,}"
}
  • Примечание: разные движки используют разные флаги, поэтому в примере выше флаг E нужно удалить из файла aws-keys.json, чтобы ag успешно запустился.

Установка

Если у вас установлен и настроен Go, вы можете установить gf следующей командой:

root@kitploit:~
▶ go get -u github.com/tomnomnom/gf

Если вы устанавливали с помощью go get, вы можете включить автодополнение в вашем .bashrc так:

root@kitploit:~
▶ echo 'source $GOPATH/src/github.com/tomnomnom/gf/gf-completion.bash' >> ~/.bashrc

Учтите, что вам придётся перезапустить терминал или выполнить source ~/.bashrc, чтобы изменения вступили в силу.

Чтобы быстро начать работу, вы можете скопировать примеры файлов шаблонов в ~/.gf так:

root@kitploit:~
▶ cp -r $GOPATH/src/github.com/tomnomnom/gf/examples ~/.gf

Мои личные шаблоны, которые я включил в качестве примеров, могут оказаться не очень полезными для вас, но, надеюсь, они послужат разумной отправной точкой.

Участие

На самом деле мне больше всего интересны новые файлы шаблонов! Если у вас есть что-то, что вы регулярно ищете с помощью grep, смело открывайте PR, чтобы добавить новые файлы шаблонов в каталог examples.

Исправления ошибок также приветствуются, как всегда :)

Скачать инструмент