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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cook — 一个词表框架,满足你对词表的各种需求。面向安全研究人员、漏洞赏金猎人和黑客。 | Kitploit
工具/GitHubGitHub/glitchedgitz/cook
密码破解模糊测试渗透测试实用工具与框架
GitHubglitchedgitz/cook

cook

一个词表框架,满足你对词表的各种需求。面向安全研究人员、漏洞赏金猎人和黑客。

查看仓库网站
1.4k14057个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

COOK

一个功能强大的词列表生成器、分割器、合并器、查找器、保存器,可创建单词排列与组合,应用不同的编码/解码,以及您所需的一切。

挫败感终结者!并且可定制!

目录

  • 安装
    • 配置
  • 基础
    • 范围
    • 参数方式
  • COOK 的原料
    • 类别
    • 将词列表/列表/字符等全部保存到 my.yaml
    • 函数
    • 自定义 my.yaml
      ▸ 添加/更新
      ▸ 删除
    • 本地文件 / 获取 URL
  • 方法
    • 多重编码
    • 打破命名惯例 💫
    • 所有方法 cook help methods
  • 一些用例示例
    • 逐行合并词列表
    • 每一步都打印
    • 与其他工具结合
  • 终极用法
    • 现实生活中的使用示例:
  • 重复运算符 * 和 **
  • 解析规则
  • 标志
  • 作为库使用
  • 在 cook-ingredients 中分享您的配方和原料
  • 贡献

安装

使用 Go 或下载 最新构建

root@kitploit:~
go install -v github.com/glitchedgitz/cook/v2/cmd/cook@latest

配置

从版本 v2.2 开始,cook 将 cook-ingredients 保存在 $home/.config/cook/cook-ingredients

要更改,请创建一个路径变量 COOK=[您的路径]

基础

没有基础,一切都很复杂。

范围

参数方式

为它们命名任意名称,并使用它们生成模式。 当您使用 方法 按列应用编码时,这将更加有用。

root@kitploit:~
cook -start intigriti,bugcrowd  -sep _,- -end users.rar,secret.zip  / start sep end
root@kitploit:~
注意:您必须在模式中包含参数,否则不会打印任何内容。

COOK 的原料

Cook 依赖于 cook-ingredients,这些是 .yaml 文件的集合,包含单词集、函数、端口、来自 assetnotes、seclist、fuzzdb 等的词列表,总共有 15+ 等。

类别

将词列表/列表/字符等全部保存到 my.yaml

函数

root@kitploit:~
cook -dob date[17,Sep,1994] elliot _,-, dob

自定义 my.yaml

手动编辑 my.yaml 或使用以下命令。

▸ 添加/更新

如果 keyword 不存在,则会创建它;否则会更新它并将新值添加到同一个变量中。

root@kitploit:~
# 语法
cook add [关键字]=[值1, 值2, ..., 值N] in [类别]

# 命令
cook add unique_name=word1,word2,word3 in lists

▸ 删除

root@kitploit:~
cook delete [关键字]

本地文件 / 获取 URL

在参数名称后使用 :。

root@kitploit:~
cook -f: live.txt f
root@kitploit:~
cook -f: https://example.com/wordlist.txt f

从数据库中访问词列表

Cook 已经获取了多个仓库,可以直接使用这些仓库中的词列表...

assetnotes、seclist、fuzzdb 等。

方法

使用方法,您可以编码、解码、反转、分割、排序、提取,还可以做更多事情...

方法可以应用于最终输出或按列应用

  • -m/-method:将方法应用于最终输出
  • -mc/-methodcol:按列应用。
  • param.methodname:对任意参数应用,稍后会举例说明参数相关的内容。

多重编码

  • 叠加编码:
    • 使用点 .
    • md5.b64e.urle 逐个应用多个方法。
    • 输出逻辑:
      • 生成的模式 > md5 哈希 > base64 编码 > URL 编码
  • 不同编码:
    • 使用逗号 ,
    • md5,sha1,sha256 对同一生成模式应用不同的编码。
    • 输出逻辑:
      • 生成的模式 > md5 哈希
      • 生成的模式 > sha1 哈希
      • 生成的模式 > sha256 哈希

打破命名惯例 💫

特别关注这两个方法,它们在您使用任何词列表时都会非常有用。

智能分割 -m smart

root@kitploit:~
▶ cook adminNew,admin_new -m smart
root@kitploit:~
输出:

admin
New
admin
new

智能合并 -m smartjoin[<大小写>:<字符>]

它先分割,然后用提供的字符重新合并。

root@kitploit:~
▶ cook adminNew,admin-old -m smartjoin[:_]
root@kitploit:~
输出:

admin_New
admin_old

对分割后的部分应用大小写

这里我们应用了驼峰式

root@kitploit:~
▶ cook suppose_this_is_long_text -m smartjoin[c:_]
root@kitploit:~
输出:

suppose_This_Is_Long_Text

所有方法 cook help methods

root@kitploit:~
sort                           - 排序
sortu                          - 排序并只保留唯一值
reverse                        - 反转字符串
leet                           - a->4, b->8, e->3 ...
                                    leet[0] 或 leet[1]

smart                          - 按命名惯例分割单词
                                    redirectUri, redirect_uri, redirect-uri  ->  [redirect, uri]
smartjoin                      - 按命名惯例分割单词并
                                    param.smartjoin[c,_] (大小写, 连接符)
                                    redirect-uri, redirectUri, redirect_uri ->  redirect_Uri

u          upper               - 大写
l          lower               - 小写
t          title               - 首字母大写

字符串操作

root@kitploit:~
split                          - split[字符]
splitindex                     - splitindex[字符:索引]
replace                        - 全部替换 replace[原字符串:新字符串]

JSON

root@kitploit:~
json                           - 提取 JSON 字段
                                    json[键] 或 json[键:子键:子子键]

URL 操作

root@kitploit:~
fb         filebase            - 从路径或 URL 中提取文件名
s          scheme              - 从 URL 中提取 http, https, gohper, ws 等
           user                - 从 URL 中提取用户名
           pass                - 从 URL 中提取密码
h          host                - 从 URL 中提取主机名
p          port                - 从 URL 中提取端口号
ph         path                - 从 URL 中提取路径
f          fragment            - 从 URL 中提取片段
q          query               - 从 URL 中提取整个查询字符串
k          keys                - 从 URL 中提取键
v          values              - 从 URL 中提取值
d          domain              - 从 URL 中提取域名
           tld                 - 从 URL 中提取顶级域名
           alldir              - 从 URL 路径中提取所有目录
sub        subdomain           - 从 URL 中提取子域名
           allsubs             - 从 URL 中提取所有子域名

编码/解码

root@kitploit:~
b64e       b64encode           - Base64 编码
b64d       b64decode           - Base64 解码

           charcode            - 给出字符编码
                                    - charcode[0]
                                        &#97&#98&#99
                                    - charcode[1] 带分号
                                        &#97;&#98;&#99;

hexe       hexencode           - 十六进制字符串编码
hexd       hexdecode           - 十六进制字符串解码

jsone      jsonescape          - JSON 转义
jsonu      jsonunescape        - JSON 反转义

urle       urlencode           - URL 对保留字符编码
            utf16                - UTF-16 编码器 (小端序)
            utf16be              - UTF-16 编码器 (大端序)
urld       urldecode           - URL 解码
urleall    urlencodeall        - URL 对所有字符编码

xmle       xmlescape           - XML 转义
xmlu       xmlunescape         - XML 反转义

unicodee   unicodeencodeall    - Unicode 转义字符串编码(所有字符)
unicoded   unicodedecode       - Unicode 转义字符串解码

哈希

root@kitploit:~
md5                            - MD5 散列
sha1                           - SHA1 校验和
sha224                         - SHA224 校验和
sha256                         - SHA256 校验和
sha384                         - SHA384 校验和
sha512                         - SHA512 校验和

一些用例示例

一些通用用例帮助理解 cook。

▸ 网站使用自定义后缀/前缀?

▸ 逐行合并词列表

使用 -append 标志:

root@kitploit:~
cook -l: live.txt -p: payloads.txt l / p -append 2
root@kitploit:~
# 多列
cook col1 col2 col3 col4 col5 -append 2,5

注意:有时很难找到列的索引,此时请使用 -col

▸ 每一步都打印

如果您想从每个排列开始打印数据,请使用 -min 标志

注意:有时很难找到列的索引,此时请使用 -col

与其他工具结合

生成模式并通过 PIPE 与其他工具结合。

root@kitploit:~
cook [生成的模式] | [支持管道输入的任何工具]

▸ 使用 FFUF 进行基本认证模糊测试

root@kitploit:~
cook usernames_list : passwords_list -m b64e | ffuf -u https://target.com -w - -H "Authorization: Basic FUZZ"

▸ 使用 FFUF 进行空载荷模糊测试

root@kitploit:~
cook https://target.com/**100 | ffuf -u FUZZ -w -

▸ 使用 x8 寻找隐藏参数

root@kitploit:~
cook [生成的输出] | x8 -u https://target.com

▸ 使用 dnsx 或 httprobe 查询活跃顶级域名

root@kitploit:~
cook example.com seclists-tlds.txt  | dnsx -v

终极用法

功能太强大了?但每天您都会遇到奇怪的 BB 任务,比如目标的一个大 JSON 文件?也许您想提取、合并、合并或做其他操作。您可以根据自己的用例智能地使用 cook。

现实生活中的使用示例:

作为 BBH,我们经常遇到 JSON 文件。也许您可能读过如何查找词列表并将其保存到您的收藏中。

假设您阅读了这篇关于 IIS 短名称漏洞的博客文章: https://blog.assetnote.io/2020/09/18/finding-hidden-files-folders-iis-bigquery/

这里 Assetnote 分享了 大 ZIP 文件,现在您需要某种方式保存这个文件,并在需要时能快速访问。

像这样保存它...,这将在 my.yaml 中保存文件

root@kitploit:~
cook add shub_zip_files=[URL] in files

或者手动保存到 my.yaml,

root@kitploit:~
shub_zip_files: [https://storage.googleapis.com/zipfilesbq/zipfiles.json]

注意:cook 已经将其保存在默认词列表中,您可以使用 cook shub_zip_files 访问它

▸ 文件数据如下,但这并不是直接有用的。

root@kitploit:~
{"repo_name":"cocowool/RoseCMS","ref":"refs/heads/1","path":"user_guide/_downloads/ELDocs.tmbundle.zip","mode":"33261","id":"f7a11b364ca918379b48ad525798148e7470b6b1"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/fast.zip","mode":"33188","id":"f4ed17b98c9d7bcd21efc4523ce75fbe2b071d0a"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/store.zip","mode":"33188","id":"e2add30dc0e3129dc89e20a71abe7314052d0002"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/ultra.zip","mode":"33188","id":"86a8ec776107c075ce2c7f803472aa97dc25cbf7"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/normal.zip","mode":"33188","id":"b4602c94ee000ee54c71c9302b9db956b3fd9f0e"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/fastest.zip","mode":"33188","id":"f4ed17b98c9d7bcd21efc4523ce75fbe2b071d0a"}
{"repo_name":"xuguanfeng/practise","ref":"refs/heads/1","path":"node_modules/selenium-webdriver/node_modules/adm-zip/test/assets/maximum.zip","mode":"33188","id":"86a8ec776107c075ce2c7f803472aa97dc25cbf7"}
...

假设您需要:
▸ 提取 JSON 字段 path
▸ 从 path 中提取 filebase
▸ 然后基于 命名惯例 进行分割

单行解决方案

▸ 使用 cook,我们不仅可以提取它,还可以从路径中提取文件基名并排序去重,然后使用 smartjoin 创建不同的排列方式。

root@kitploit:~
cook -z shub_zip_files z.json[path].fb.sortu.smartjoin[c:_]

这也是 cook 的诞生过程,最初是为了模糊测试 IIS 短名称,后来我添加了其他功能。

重复运算符 * 和 **

  • 使用 * 进行水平重复。
  • 使用 ** 进行垂直重复。
  • 试试 *10-1 或 *1-10。

解析规则

标志

作为库使用

您可以在 Go 项目中将 Cook 作为库使用。

基本用法

root@kitploit:~
package main

import (
	"fmt"
	"github.com/glitchedgitz/cook/v2/pkg/cook"
)

func main() {
	// 创建一个新的 cook 实例
	cookInst := cook.New(&cook.COOK{
		Pattern:     []string{"a,b,c", "1,2,3"},
		PrintResult: false, // 不打印到标准输出
	})

	// 生成模式
	cookInst.Generate()

	fmt.Println("生成的模式:", cookInst.Final)
}

高效的多模式生成(v2.X.X 及以上)

无需每次都重新初始化资源即可生成多个模式:

root@kitploit:~
package main

import (
	"fmt"
	"github.com/glitchedgitz/cook/v2/pkg/cook"
)

func main() {
	// 创建一个生成器,一次初始化共享资源
	generator := cook.NewGenerator()

	// 高效地生成多个模式
	list1 := generator.Generate([]string{"a,b,c", "1,2,3"})
	list2 := generator.Generate([]string{"admin", "password-2023"})

	fmt.Println("模式 1:", list1)
	fmt.Println("模式 2:", list2)
}

并发模式生成

生成器也支持并发模式生成:

root@kitploit:~
package main

import (
	"fmt"
	"sync"
	"github.com/glitchedgitz/cook/v2/pkg/cook"
)

func main() {
	generator := cook.NewGenerator()
	patterns := [][]string{
		{"user-1-5", "pass-1-3"},
		{"admin", "Admin-2023-2025"},
	}

	var wg sync.WaitGroup
	results := make([][]string, len(patterns))

	// 并发生成模式
	for i, pattern := range patterns {
		wg.Add(1)
		go func(idx int, p []string) {
			defer wg.Done()
			results[idx] = generator.Generate(p)
		}(i, pattern)
	}

	wg.Wait()

	// 使用结果
	for i, r := range results {
		fmt.Printf("模式 %d 生成了 %d 个结果\n", i, len(r))
	}
}

搜索示例

使用库搜索 cook-ingredients:

root@kitploit:~
package main

import (
	"fmt"
	"github.com/glitchedgitz/cook/v2/pkg/cook"
)

func main() {
	cookInst := cook.NewWithoutConfig()
	results := cookInst.Search("api")
	fmt.Printf("搜索到的 API 模式: %v\n", results)
}

在 cook-ingredients 中分享您的配方和原料

  • 与社区分享您的 yaml 文件

贡献

  • 使用并发使其更快
  • 为 shell 添加自动补全
  • 使 append 能像 cook file1 =/= file2 这样工作,确保字符能够直接在所有终端中使用
  • 使 原始字符串 像在编程语言中一样工作。即更好的解析器。
  • 我不知道,您可能会发挥创造力添加一些很棒的功能。
  • 您可以 请我喝杯咖啡☕
下载工具
类别描述
lists直接使用的值数组
filesURL 数组
ports数字范围
raw-files本地文件数组
functions函数 用于生成模式
列由空格分隔
值由逗号分隔
参数您可以给参数任意名称,在任何内容前使用 - 使其成为参数 -参数 值
原始字符串在字符串前后使用 ` 来阻止 cook 的解析。当您需要将任何关键字用作单词时很有用。
管道输入使用 - 作为任何参数的值来接收管道输入。
文件输入在参数名称后使用 : 来接受文件输入。cook -f: live.txt f
函数只能通过参数调用。
方法可以在参数上或最终输出上使用
标志用法
-peek使用 -peek 50 查看前 50 行的输出
-a, -append追加到前面的行,而不是排列
-c, -col打印列号及其值
-conf, -config配置信息
-mc, -methodcol按列应用方法 -mc 0:md5,b64e; 1:reverse
对所有列应用 -mc md5,b64e
-m, -method将方法应用于最终输出
-h, -help帮助
-min要打印的最小列数