LFIFucker - Ищем сайты по гугл доркам и тестируем на наличие LFI.

Ruby

Кодер проекта
Команда форума
Модератор
Регистрация
13.04.19
Сообщения
3
Реакции
5
Баллы
2
Всем привет. Хочу представить свой авторский софт, знаю что LFI-уязвимости уже сто лет в обед, но всё же до сих пор встречаются немало веб-ресурсов на просторах интернета с наличием этой дыры. Прошу строго не судить, баги и недочёты есть, исправим :)

1122

Итак, краткое описание самой уязвимости:
LFI - это возможность использования и выполнения локальных файлов на серверной стороне. Уязвимость позволяет удаленному пользователю получить доступ с помощью специально сформированного запроса к произвольным файлам на сервере, в том числе содержащую конфиденциальную информацию.
Что конкретно умеет софт:
  • Ищет гугл дорки с помощью Google CSE(Custom Search Engine).
  • Фильтрует найденые сайты.
  • В многопоточном режиме сканирует сайты на предмет наличия уязвимости по заданным шаблонам.
  • Также есть возможность указать свой список сайтов.
  • Использование SOCKS5 проксей.
Теперь разберёмся как юзать тулзу.

1123



Первым делом клоним репозиторий и переходим в папку с ним.

> git clone https://github.com/madRubyroid/LFIFucker.git
> cd LFIFucker/

Теперь надо прописать в конфиге API-ключ для search engine и CSE-CX.
Для этого переходим по этой ссылке. Мы попадаем в CSE Home.

1124

Далее нужно добавить новую поисковую систему. Нажимаем Добавить.

1125


Указываем сайты, на которых будет выполняться поиск и название системы. Создаем.
Окей, переходим в Панель управления и копируем Идентификатор поисковой системы(CSE-CX).

1126
Переходим в GCloud Console и создаем проект, после переходим в раздел Библиотеку API и ищем Custom Search Engine.

1127

Нажимаем Включить, и переходим в раздел Учетные данные.
Нам нужно либо сгенерить новый API-ключ, либо использовать те, которые автосгенерились, это не принципиально.
Соответственно, либо копируем один из трёх уже существующих ключей:

1128

Либо выбираем Создать учетные данные > Ключ API.
Последний этап настройки: прописать этих два значения в конфиг файлик lfi.conf

Код:
#############-LFIFucker configuration file-###############

GOOGLE_API_KEY=<YOUR-API-KEY>
GOOGLE_ENGINE_CX=<YOUR-ENGINE-CX>
Так, настройка завершена, можно пробовать :)
Чтобы запустить поиск сайтов, допустим, по доркам id= q= p= act=, и сканирование по дефолтному шаблону, вводим эту команду

> ./LFIFucker.sh --dork-query id=,q=,p=,act=

Сейчас тулза найдёт сайты по вышеуказанным доркам, отфильтрует их и в 6 потоков будет делать запрос по шаблону.
Результаты сохраняются в tmp директории.

Код:
RLFIFucker$ ls tmp/
16072019_142800_lfi_vulnerable.log
Указание списка ссылок для проверки на уязвимость, без использование CSE и с указанием вашего списка шаблонов:

> ./LFIFucker --sites sites.txt --patterns patterns.list

Как вы могли уже заметить, тулза на bash, но часть на python. Почему так? Да потому что это было чисто по-фану, в принципе я не планировал показывать в люди эту скромную софтинку :)
Функционал будет мной еще допиливаться, есть идеи прикрутить еще RFI(Remote File Inclusion), но пока имеем что имеем.
Если есть смысл и те, кому будет интересно более подробно разобрать LFI/RFI, в будушем я напишу статью по этой теме.

На этом пока всё.