Всем привет. Хочу представить свой авторский софт, знаю что LFI-уязвимости уже сто лет в обед, но всё же до сих пор встречаются немало веб-ресурсов на просторах интернета с наличием этой дыры. Прошу строго не судить, баги и недочёты есть, исправим
Итак, краткое описание самой уязвимости:
Что конкретно умеет софт:
Первым делом клоним репозиторий и переходим в папку с ним.
Теперь надо прописать в конфиге API-ключ для search engine и CSE-CX.
Последний этап настройки: прописать этих два значения в конфиг файлик lfi.conf
Так, настройка завершена, можно пробовать
Чтобы запустить поиск сайтов, допустим, по доркам id= q= p= act=, и сканирование по дефолтному шаблону, вводим эту команду
Сейчас тулза найдёт сайты по вышеуказанным доркам, отфильтрует их и в 6 потоков будет делать запрос по шаблону.
Результаты сохраняются в tmp директории.
Указание списка ссылок для проверки на уязвимость, без использование CSE и с указанием вашего списка шаблонов:
Как вы могли уже заметить, тулза на bash, но часть на python. Почему так? Да потому что это было чисто по-фану, в принципе я не планировал показывать в люди эту скромную софтинку
Функционал будет мной еще допиливаться, есть идеи прикрутить еще RFI(Remote File Inclusion), но пока имеем что имеем.
Если есть смысл и те, кому будет интересно более подробно разобрать LFI/RFI, в будушем я напишу статью по этой теме.
На этом пока всё.
Итак, краткое описание самой уязвимости:
LFI - это возможность использования и выполнения локальных файлов на серверной стороне. Уязвимость позволяет удаленному пользователю получить доступ с помощью специально сформированного запроса к произвольным файлам на сервере, в том числе содержащую конфиденциальную информацию.
Что конкретно умеет софт:
- Ищет гугл дорки с помощью Google CSE(Custom Search Engine).
- Фильтрует найденые сайты.
- В многопоточном режиме сканирует сайты на предмет наличия уязвимости по заданным шаблонам.
- Также есть возможность указать свой список сайтов.
- Использование SOCKS5 проксей.
Первым делом клоним репозиторий и переходим в папку с ним.
> git clone https://github.com/madRubyroid/LFIFucker.git
> cd LFIFucker/
Теперь надо прописать в конфиге API-ключ для search engine и CSE-CX.
Для этого переходим по этой
Далее нужно добавить новую поисковую систему. Нажимаем Добавить.
Указываем сайты, на которых будет выполняться поиск и название системы. Создаем.
Окей, переходим в Панель управления и копируем Идентификатор поисковой системы(CSE-CX).
Ссылка скрыта от гостей
. Мы попадаем в CSE Home.Далее нужно добавить новую поисковую систему. Нажимаем Добавить.
Указываем сайты, на которых будет выполняться поиск и название системы. Создаем.
Окей, переходим в Панель управления и копируем Идентификатор поисковой системы(CSE-CX).
Переходим в
Нажимаем Включить, и переходим в раздел Учетные данные.
Нам нужно либо сгенерить новый API-ключ, либо использовать те, которые автосгенерились, это не принципиально.
Соответственно, либо копируем один из трёх уже существующих ключей:
Либо выбираем Создать учетные данные > Ключ API.
Ссылка скрыта от гостей
и создаем проект, после переходим в раздел
Ссылка скрыта от гостей
и ищем Custom Search API. Нажимаем Включить, и переходим в раздел Учетные данные.
Нам нужно либо сгенерить новый API-ключ, либо использовать те, которые автосгенерились, это не принципиально.
Соответственно, либо копируем один из трёх уже существующих ключей:
Либо выбираем Создать учетные данные > Ключ API.
Код:
#############-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, в будушем я напишу статью по этой теме.
На этом пока всё.
Последнее редактирование: