Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gf — grep 주변의 래퍼로, 원하는 것을 grep 하는 데 도움을 줍니다. | Kitploit
도구/GitHubGitHub/tomnomnom/gf
General Purpose UtilitiesReconnaissanceCode AnalysisInformation GatheringSecret Detection
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

자동 완성을 작동시키려면 .bashrc 또는 유사한 파일에서 gf-completion.bash 파일을 source해야 합니다:

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

Zsh

자동 완성을 작동시키려면 autoload -U compaudit && compinit을 사용하거나 이를 .zshrc에 넣어 자동 완성을 활성화해야 합니다 (oh-my-zsh가 있는 경우 필요하지 않습니다).

그런 다음 .zshrc 또는 유사한 파일에서 gf-completion.zsh 파일을 source하세요:

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

참고: oh-my-zsh 또는 유사한 것을 사용하는 경우 gf가 git fetch의 별칭(alias)임을 알 수 있습니다. 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,}"
}
  • 참고: 엔진마다 다른 플래그를 사용하므로, 위 예제에서는 ag가 성공적으로 실행되도록 aws-keys.json 파일에서 플래그 E를 제거해야 합니다.

설치

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 디렉토리에 새 패턴 파일을 추가해 주세요.

버그 수정도 언제나 환영합니다 :)

도구 다운로드