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' or 'dash' or 'ascii') (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 -hcat /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.phpBase 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.phpBase 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.phpResult
╰─➤ 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.phpAlso, 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.phpcaserer -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.phpBase 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.phpcat ../../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.phpBase wordlist:
getUser.php
get_info.php
getresources.php
SetResources.php
get_People.php
get.resource.php
test.getterResource.php
infophp.php
phpinfo.php
testingpurpose.phpcaserer -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.phpcaserer -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.phpbase wordlist
žvanilu
žurnalistech
žlutémcaserer -f ../../examples/ascii.txt -t ascii
zvanilu
zurnalistech
zlutemlimits:
- 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