Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
wordlist.rb — Библиотека Ruby и CLI для генерации и работы со списками слов. | Kitploit
Инструменты/GitHubGitHub/postmodern/wordlist.rb
Атаки на ПаролиФаззингТестирование на ПроникновениеУтилиты и фреймворки
GitHubpostmodern/wordlist.rb

wordlist.rb

Библиотека Ruby и CLI для генерации и работы со списками слов.

Репозиторий
4837 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Wordlist

CI Code Climate Gem Version

  • Исходный код
  • Проблемы
  • Документация

Описание

Wordlist — это Ruby-библиотека и CLI для эффективного чтения, комбинирования, мутации и построения списков слов (wordlist).

Возможности

  • Поддерживает чтение .txt списков слов, а также сжатых списков в форматах .gz, .bz2, .xz, .zip и .7z.
  • Поддерживает построение списков слов из произвольного текста. Также поддерживается сжатие .gz, .bz2, .xz, .zip и .7z.
  • Предоставляет продвинутый лексер для разбора текста на слова.
    • Умеет разбирать/пропускать цифры, специальные символы, целые числа, аббревиатуры.
    • Умеет нормализовывать регистр, апострофы и аббревиатуры.
  • Поддерживает операции над списками слов для объединения нескольких списков вместе.
  • Поддерживает модификацию или мутацию слов в списке на лету.
  • Также предоставляет команду wordlist synopsis.
  • Достаточно быстрый

Примеры

Чтение

Открыть список слов для чтения:

root@kitploit:~
wordlist = Wordlist.open("passwords.txt")

Открыть сжатый список слов для чтения:

root@kitploit:~
wordlist = Wordlist.open("rockyou.txt.gz")

Перебрать список слов:

root@kitploit:~
wordlist.each do |word|
  puts word
end

Создать список литеральных слов в памяти:

root@kitploit:~
words = Wordlist::Words["foo", "bar", "baz"]

Операции над списками

Объединить два списка слов (конкатенация):

root@kitploit:~
(wordlist1 + wordlist2).each do |word|
  puts word
end

Взять объединение двух списков слов:

root@kitploit:~
(wordlist1 | wordlist2).each do |word|
  puts word
end

Вычесть один список слов из другого:

root@kitploit:~
(wordlist1 - wordlist2).each do |word|
  puts word
end

Скомбинировать каждое слово из wordlist1 со словами из wordlist2:

root@kitploit:~
(wordlist1 * wordlist2).each do |word|
  puts word
end

Скомбинировать список слов с самим собой несколько раз:

root@kitploit:~
(wordslist ** 3).each do |word|
  puts word
end

Отфильтровать дубликаты из нескольких списков слов:

root@kitploit:~
(wordlist1 + wordlist2 + wordlist3).uniq.each do |word|
  puts word
end

Манипуляции со строками

Преобразовать каждое слово в списке в нижний регистр:

root@kitploit:~
wordlist.downcase.each do |word|
  puts word
end

Преобразовать каждое слово в списке в ВЕРХНИЙ регистр:

root@kitploit:~
wordlist.upcase.each do |word|
  puts word
end

Преобразовать каждое слово в списке в заглавный регистр (первая буква — заглавная):

root@kitploit:~
wordlist.capitalize.each do |word|
  puts word
end

Применить String#tr к каждому слову в списке:

root@kitploit:~
wordlist.tr('_','-').each do |word|
  puts word
end

Применить String#sub к каждому слову в списке:

root@kitploit:~
wordlist.sub("fish","phish").each do |word|
  puts word
end

Применить String#gsub к каждому слову в списке:

root@kitploit:~
wordlist.gsub(/\d+/,"").each do |word|
  puts word
end

Выполнить все возможные мутации каждого слова в списке:

root@kitploit:~
wordlist.mutate(/[oae]/, {'o' => '0', 'a' => '@', 'e' => '3'}).each do |word|
  puts word
end
# dog
# d0g
# firefox
# fir3fox
# firef0x
# fir3f0x
# ...

Перечислить все возможные варианты регистра каждого слова в списке:

root@kitploit:~
wordlist.mutate_case.each do |word|
  puts word
end
# cat
# Cat
# cAt
# caT
# CAt
# CaT
# cAT
# CAT
# ...

Построение списка слов

root@kitploit:~
Wordlist::Builder.open('path/to/file.txt.gz') do |builder|
  # ...
end

Добавить отдельные слова:

root@kitploit:~
builder.add(word)

Добавить массив слов:

root@kitploit:~
builder.append(words)

Разбор текста:

root@kitploit:~
builder.parse(text)

Разбор содержимого файла:

root@kitploit:~
builder.parse_file(path)

Требования

  • ruby >= 3.0.0
  • zcat/gzip (для чтения/записи списков .gz)
  • bzcat/bzip2 (для чтения/записи списков .bz2)
  • xzcat/xz (для чтения/записи списков .xz)
  • unzip/zip (для чтения/записи списков .zip)
  • 7za (для чтения/записи списков .7z)

Установка

root@kitploit:~
$ gem install wordlist

gemspec

root@kitploit:~
gem.add_dependency 'wordlist', '~> 1.0'

Gemfile

root@kitploit:~
gem 'wordlist', '~> 1.0'

Synopsis

root@kitploit:~
usage: wordlist { [options] WORDLIST ... | --build WORDLIST [FILE ...] }

Wordlist Reading Options:
    -f {txt|gzip|bz2|xz|zip|7zip},   Sets the desired wordlist format
        --format
        --exec COMMAND               Runs the command with each word from the wordlist.
                                     The string "{}" will be replaced with each word.

Wordlist Operations:
    -U, --union WORDLIST             Unions the wordlist with the other WORDLIST
    -I, --intersect WORDLIST         Intersects the wordlist with the other WORDLIST
    -S, --subtract WORDLIST          Subtracts the words from the WORDLIST
    -p, --product WORDLIST           Combines every word with the other words from WORDLIST
    -P, --power NUM                  Combines every word with the other words from WORDLIST
    -u, --unique                     Filters out duplicate words

Wordlist Modifiers:
    -C, --capitalize                 Capitalize each word
        --uppercase, --upcase        Converts each word to UPPERCASE
        --lowercase, --downcase      Converts each word to lowercase
    -t, --tr CHARS:REPLACE           Translates the characters of each word
    -s, --sub PATTERN:SUB            Replaces PATTERN with SUB in each word
    -g, --gsub PATTERN:SUB           Replaces all PATTERNs with SUB in each word
    -m, --mutate PATTERN:SUB         Performs every possible substitution on each word
    -M, --mutate-case                Switches the case of each letter in each word

Wordlist Building Options:
    -b, --build WORDLIST             Builds a wordlist
    -a, --[no-]append                Appends to the new wordlist instead of overwriting it
    -L, --lang LANG                  The language to expect
        --stop-words WORDS...        Ignores the stop words
        --ignore-words WORDS...      Ignore the words
        --[no-]digits                Allow digits in the middle of words
        --special-chars CHARS        Allows the given special characters inside of words
        --[no-]numbers               Parses whole numbers in addition to words
        --[no-]acronyms              Parses acronyms in addition to words
        --[no-]normalize-case        Converts all words to lowercase
        --[no-]normalize-apostrophes Removes "'s" from words
        --[no-]normalize-acronyms    Removes the dots from acronyms

General Options:
    -V, --version                    Print the version
    -h, --help                       Print the help output

Examples:
    wordlist rockyou.txt.gz
    wordlist passwords_short.txt passwords_long.txt
    wordlist sport_teams.txt -p beers.txt -p digits.txt
    cat *.txt | wordlist --build custom.txt

Чтение списка слов:

root@kitploit:~
$ wordlist rockyou.txt.gz

Чтение нескольких списков слов:

root@kitploit:~
$ wordlist sport_teams.txt beers.txt

Комбинирование каждого слова из одного списка со словами из другого:

root@kitploit:~
$ wordlist sport_teams.txt -p beers.txt -p all_four_digits.txt
coors0000
coors0001
coors0002
coors0003
...

Комбинирование каждого слова из списка с самим собой N раз:

root@kitploit:~
$ wordlist words.txt -P 3

Мутация каждого слова в списке:

root@kitploit:~
$ wordlist passwords.txt -m o:0 -m e:3 -m a:@
dog
d0g
firefox
fir3fox
firef0x
fir3f0x
...

Выполнение команды для каждого слова в списке:

root@kitploit:~
$ wordlist directories.txt --exec "curl -X POST -F 'user=joe&password={}' -o /dev/null -w '%{http_code} {}' https://$TARGET/login"

Построение списка слов из каталога .txt файлов:

root@kitploit:~
$ wordlist --build wordlist.txt dir/*.txt

Построение списка слов из STDIN:

root@kitploit:~
$ cat *.txt | wordlist --build wordlist.txt

Benchmarks

root@kitploit:~
                                               user     system      total        real
Wordlist::Builder#parse_text (size=5.4M)   1.943605   0.003809   1.947414 (  1.955960)
Wordlist::File#each (N=1000)               0.000544   0.000000   0.000544 (  0.000559)
Wordlist::File#concat (N=1000)             0.001143   0.000000   0.001143 (  0.001153)
Wordlist::File#subtract (N=1000)           0.001360   0.000000   0.001360 (  0.001375)
Wordlist::File#product (N=1000)            0.536518   0.005959   0.542477 (  0.545536)
Wordlist::File#power (N=1000)              0.000015   0.000001   0.000016 (  0.000014)
Wordlist::File#intersect (N=1000)          0.001389   0.000000   0.001389 (  0.001407)
Wordlist::File#union (N=1000)              0.001310   0.000000   0.001310 (  0.001317)
Wordlist::File#uniq (N=1000)               0.000941   0.000000   0.000941 (  0.000948)
Wordlist::File#tr (N=1000)                 0.000725   0.000000   0.000725 (  0.000736)
Wordlist::File#sub (N=1000)                0.000863   0.000000   0.000863 (  0.000870)
Wordlist::File#gsub (N=1000)               0.001240   0.000000   0.001240 (  0.001249)
Wordlist::File#capittalize (N=1000)        0.000821   0.000000   0.000821 (  0.000828)
Wordlist::File#upcase (N=1000)             0.000760   0.000000   0.000760 (  0.000769)
Wordlist::File#downcase (N=1000)           0.000544   0.000001   0.000545 (  0.000545)
Wordlist::File#mutate (N=1000)             0.004656   0.000000   0.004656 (  0.004692)
Wordlist::File#mutate_case (N=1000)       24.178521   0.000000  24.178521 ( 24.294962)

Лицензия

Copyright (c) 2009-2023 Hal Brodigan

Подробности см. в {file:LICENSE.txt}.

Скачать инструмент