A simple golang tool to help you generate wordlists based on case types.
I know there are other tools that can do this, but they where not satisfying my needs, so i made my own.
Usage of ./caserer:
-e string
Comma-separated list of file extensions to preserve during conversion (default "php,js,jsp,do,aspx")
-f string
File containing HTTP resources
-l string
Path to a dictionary file for language matching
-t string
Case conversion type ('snake' or 'camel') (default "snake")
I'm providing a precompiled binary for linux, you can download it from the release page for stable releases.
I'm also keeping the latest compiled version in cmd/caserer/caserer, you can download it directly from the repository.
If you want to compile it yourself, you can use the following command:
git clone git@github.com:ElSicarius/caserer.git
cd caserer/cmd/caserer
go build .
cp caserer /usr/local/bin
caserer -h
cat /opt/lists/web/jsfiles.txt | caserer -t snake | tee /opt/lists/web/jsfilesSnake.txt
cat /opt/lists/web/phpassetnoteBIG.txt | caserer -t camel | tee /opt/lists/web/phpassetnoteBIGCamel.php
Base wordlist:
getUser.php
get_info.php
getresources.php
SetResources.php
get_People.php
╰─➤ cat ../../examples/wordlist.txt | caserer -t camel
getUser.php
getInfo.php
getresources.php
SetResources.php
getPeople.php
╰─➤ cat ../../examples/wordlist.txt | caserer -t snake
get_user.php
get_info.php
getresources.php
set_resources.php
get_People.php
get_people.php
Base wordlist:
getUser.php
GetUser.php
Get_User.php
get_info.php
getresources.php
SetResources.php
get_People.php
get.resource.php
test.getterResource.php
infophp.php
phpinfo.php
testingpurpose.php
testing-purpose.php
Result
╰─➤ caserer -f ../../examples/wordlist.txt -t snake -u
get_user.php
get_user.php
get_user.php
get_info.php
getresources.php
set_resources.php
get_people.php
get.resource.php
test.getter_resource.php
infophp.php
phpinfo.php
testingpurpose.php
testing_purpose.php
/!\ You mush pipe it to sort -uV to remove duplicates
╰─➤ caserer -f ../../examples/wordlist.txt -t snake -u | sort -uV
get.resource.php
getresources.php
get_info.php
get_people.php
get_user.php
infophp.php
phpinfo.php
set_resources.php
testingpurpose.php
testing_purpose.php
test.getter_resource.php
Also, this will affect (uniformize) prefixes and suffixes output:
╰─➤ caserer -f ../../examples/wordlist.txt -t snake -u -P ajax_ | sort -uV
ajax_get.resource.php
ajax_getresources.php
ajax_get_info.php
ajax_get_people.php
ajax_get_user.php
ajax_infophp.php
ajax_phpinfo.php
ajax_set_resources.php
ajax_testingpurpose.php
ajax_testing_purpose.php
ajax_test.getter_resource.php
caserer -f ../../examples/wordlist.txt -t camel -u -P ajax_ | sort -uV
ajaxGet.resource.php
ajaxGetInfo.php
ajaxGetPeople.php
ajaxGetUser.php
ajaxGetresources.php
ajaxInfophp.php
ajaxPhpinfo.php
ajaxSetResources.php
ajaxTest.getterResource.php
ajaxTestingPurpose.php
ajaxTestingpurpose.php
Base wordlist:
getUser.php
get_info.php
getresources.php
SetResources.php
get_People.php
╰─➤ cat ../../examples/wordlist.txt | caserer -t snake -S _suffix
get_user_suffix.php
get_info_suffix.php
getresources_suffix.php
set_resources_suffix.php
get_People_suffix.php
cat ../../examples/wordlist.txt | caserer -t snake -P prefix_
prefix_get_user.php
prefix_get_info.php
prefix_getresources.php
prefix_set_resources.php
prefix_get_People.php
Base wordlist:
getUser.php
get_info.php
getresources.php
SetResources.php
get_People.php
get.resource.php
test.getterResource.php
infophp.php
phpinfo.php
testingpurpose.php
caserer -f ../../examples/wordlist.txt -t snake -l /opt/lists/web/englishwords.txt
get_user.php
get_info.php
get_resources.php
set_resources.php
get_People.php
get.resource.php
test.getter_resource.php
info_php.php
phpinfo.php
testing_purpose.php
caserer -f ../../examples/wordlist.txt -t camel -l /opt/lists/web/englishwords.txt
getUser.php
getInfo.php
getResources.php
SetResources.php
getPeople.php
get.resource.php
test.getterResource.php
infoPhp.php
phpInfo.php
testingPurpose.php
limits:
- The language dictionnary is not perfect and can't handle all cases
- The matching algorith is simple for speed purpose, i'm not doing any kind of fuzzy matching