Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
gf — 一个 grep 的包装器,帮助你搜索内容 | Kitploit
工具/GitHubGitHub/tomnomnom/gf
通用工具侦察代码分析信息收集秘密检测
GitHubtomnomnom/gf

gf

一个 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

模式文件

模式定义以小型 JSON 文件的形式存储在 ~/.gf 中,可以纳入版本控制:

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 或类似文件中 source 一下 gf-completion.bash 文件:

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

Zsh

要让自动补全工作,你需要使用 autoload -U compaudit && compinit 启用自动补全(如果你有 oh-my-zsh 则不需要),或者将其放入 .zshrc

然后在你的 .zshrc 或类似文件中 source 一下 gf-completion.zsh 文件:

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

注意:如果你使用 oh-my-zsh 或类似的工具,你可能会发现 gf 是 git fetch 的别名。你可以将 gf 二进制文件另起别名,或者使用 unalias gf 来移除 git fetch 别名。

使用自定义引擎

市面上有一些很棒代码搜索引擎,可以作为 grep 的更好替代品。一个很好的例子是 the silver searcher。它更快(就是 快得多),并且以更直观易读的方式呈现结果。为了使用不同的引擎,请在相应的模式文件中添加 engine: <其他工具>:

root@kitploit:~
# 使用 the silver searcher 代替 grep 来匹配 aws-keys 模式:
# 1. 添加 "ag" 引擎
# 2. 移除对 ag 无关紧要的 E 标志
{
  "engine": "ag",
  "flags": "-Hanr",
  "pattern": "([^A-Z0-9]|^)(AKIA|A3T|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{12,}"
}
  • 注意:不同的引擎使用不同的标志,因此在上面的示例中,必须从 aws-keys.json 文件中移除 E 标志,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 目录。

一如既往,也欢迎 Bug 修复 :)

下载工具