A wordlist framework to fullfill your kinks with your wordlists. For security researchers, bug bounty and hackers.
A wordlist framework to fullfill your kinks with your wordlists. For security researchers, bug bounty and hackers.
An overpowered wordlist generator, splitter, merger, finder, saver, create words permutation and combinations, apply different encoding/decoding and everything you need.
Frustration killer! & Customizable!
* and **Use Go or download latest builds
go install -v github.com/glitchedgitz/cook/v2/cmd/cook@latestFrom version v2.2 cook save cook-ingredients at $home/.config/cook/cook-ingredients
To change create a path variable name
COOK=[YOUR PATH]
Without basics, everything is complex.
Name them anything and use them to generate the pattern. This will be more useful when you apply encoding column-wise using methods.
cook -start intigriti,bugcrowd -sep _,- -end users.rar,secret.zip / start sep endNote: you must include parameter in the pattern, otherwise it will not print anything.Cook depends on cook-ingredients, which are .yaml files collections of wordsets, functions, ports, wordlists from assetnotes, seclist, fuzzdb, 15+ etc.
| Category | Description |
|---|---|
lists |
Array of values to directly use when called out |
files |
Array of urls |
ports |
Ranges of numbers |
raw-files |
Array of local files |
functions |
Functions are used to generate patterns |
my.yamlcook -dob date[17,Sep,1994] elliot _,-, dobmy.yamlEdit my.yaml manually or use these commands.
If keyword doesn't exist it will create it. Otherwise it will update it and add the new value in the same variable.
# Syntax
cook add [keyword]=[value1, value2, ..., valueN] in [category]
# Command
cook add unique_name=word1,word2,word3 in listscook delete [keyword]use : after param name.
cook -f: live.txt fcook -f: https://example.com/wordlist.txt fCook has fetched multiple repositories and can directly use wordlist from these repos...
assetnotes, seclist, fuzzdb, etc.
Using methods you can encode, decode, reverse, split, sort, extract and can do much more...
Methods can be applied on final output or column-wise
-m/-method to apply methods on the final output-mc/-methodcol to apply column-wise.param.methodname apply to any parameter-wise, will example this param thing later..md5.b64e.urle apply multiple methods one by one.Generated Pattern > md5 hashing > base 64 encoding > URL Encoding.,md5,sha1,sha256 apply different encoding to the same generated pattern.Generated Pattern > md5 hashingGenerated Pattern > sha1 hashingGenerated Pattern > sha256 hashingSpecial focus on these 2 methods, these will be great help everytime you use any wordlist.
-m smart▶ cook adminNew,admin_new -m smartOutput:
admin
New
admin
new-m smartjoin[<case>:<char>]It breaks and join back with the supplied character.
▶ cook adminNew,admin-old -m smartjoin[:_]Output:
admin_New
admin_oldApply Cases over separated
Here we applied camlecase
▶ cook suppose_this_is_long_text -m smartjoin[c:_]Output:
suppose_This_Is_Long_Textcook help methods…split - split[char]
splitindex - splitindex[char:index]
replace - Replace All replace[this:tothis]json - Extract JSON field
json[key] or json[key:subkey:sub-subkey]fb filebase - Extract filename from path or url
s scheme - Extract http, https, gohper, ws, etc. from URL
user - Extract username from url
pass - Extract password from url
h host - Extract host from url
p port - Extract port from url
ph path - Extract path from url
f fragment - Extract fragment from url
q query - Extract whole query from url
k keys - Extract keys from url
v values - Extract values from url
d domain - Extract domain from url
tld - Extract tld from url
alldir - Extract all dirrectories from url's path
sub subdomain - Extract subdomain from url
allsubs - Extract subdomain from url…md5 - MD5 sum
sha1 - SHA1 checksum
sha224 - SHA224 checksum
sha256 - SHA256 checksum
sha384 - SHA384 checksum
sha512 - SHA512 checksumSome general usecases to grasp understanding of cook.
Use -append flag:
cook -l: live.txt -p: payloads.txt l / p -append 2# Multiple columns
cook col1 col2 col3 col4 col5 -append 2,5Note: Sometime is confusing to find index of column, then use -col
If you want to start printing data for each permuation, then use -min flag
Note: Sometime is confusing to find index of column, then use -col
Generate pattern and combine with other tools using PIPE.
cook [Generated Pattern] | [Any tool with pipe input]cook usernames_list : passwords_list -m b64e | ffuf -u https://target.com -w - -H "Authorization: Basic FUZZ"cook https://target.com/**100 | ffuf -u FUZZ -w -cook [generated output] | x8 -u https://target.comcook example.com seclists-tlds.txt | dnsx -vToo overpowered? But everyday you came accross weird BB stuff, like a big json file from target? May be you want to extract, join, merge or whatever. You can use cook smartly as per your usecase.
As BBH, we came arross JSON file often. YOu may be you read find wordlist to save in your collection.
Let's say you read this blog about IIS Shortname Vulnerabilities https://blog.assetnote.io/2020/09/18/finding-hidden-files-folders-iis-bigquery/.
Here Assetnote shared BIG ZIP FILE, Now you need something that can save this file and you can recall it when you need.
Save it like this..., this will save file in my.yaml
cook add shub_zip_files=[URL] in filesOr manually save in my.yaml,
shub_zip_files: [https://storage.googleapis.com/zipfilesbq/zipfiles.json]Note: cook already saved it in default wordlists, you can use
cook shub_zip_filesto access it
▸ File contains data like this, but this isn't directly useful.
…Let say you need to:
▸ Extract json field path
▸ extract filebase from path
▸ then spliting it based on naming conventions
▸ With cook not just we can extract it, we can extract filebase from path and sort unique, then use smartjoin to create diff permuataions.
cook -z shub_zip_files z.json[path].fb.sortu.smartjoin[c:_]And this is also how cook was born, while fuzzing IIS Shortnames and later on I added other features.
* and *** for horizontal repeating.** for vertical repeating.*10-1 or this *1-10.| Columns | Separated by space |
| Values | Separated by comma |
| Params | You can give param any name, use - before anything to make it param -param value |
| Raw Strings | Use ` before and after the string to stop cook's parsing. Useful when you need to use any keyword as a word. |
| Pipe Input | Take pipe input using - as value of any param. |
| File Input | Use : after param name to take file input. cook -f: live.txt f |
| Functions | Can be called using params only. |
| Methods | Can be used on params or on final output |
| Flag | Usage |
|---|---|
| -peek | Peek the output using -peek 50 |
No open issues yet, or sync has not completed.