D2
Администратор
- Регистрация
- 19 Фев 2025
- Сообщения
- 4,380
- Реакции
- 0
Автор student / мой_телеграмм_канал
Источник: https://xss.is
Добро пожаловать! Как и обещал выходит продолжение статьи "Веб-хакинг мои попытки стать лучшим хакером в России". На первой части набралось много положительных отзывов и я подумал почему бы не сделать продолжение. Мой товарищ предоставил мне интересный таргет и рассказал о некоторых "точках" входа. О которых я естественно никогда не слышал. В прошлой части я показал уязвимость LFR (читалка файлов). То есть уязвимость выглядела вот так: ?filename=../../../../../../etc/passwd. Мы можем просто читать файлы, которые есть на сервере, но мы не можем их запускать или заливать свои. Также мы не можем в "тупую" брутить директории, если не знаем название файла. Ответ от сервера будет различаться только в том случае, если мы смогли прочитать файл. Так что придется думать, как выстроить абсолютный путь и в целом нужно понять, где хранятся эндпоинты. Можно просмотреть логи. Но они чистились автоматически, так что там ничего интересного не было.
Содержание:
1. Поиск точек входа
2. Создание собственного словаря
3. Раскрутка уязвимости
4. Вывод
Bash: Скопировать в буфер обмена
Если спросить chatgpt на каких дистрибутивах linux mlocate установлен по дефолту, то он вам перечислит вот такой список:
1. Ubuntu и его производные, такие как Linux Mint и elementary OS.
2. Debian и его производные, например, Kali Linux и Raspbian.
3. Fedora и его производные, включая CentOS и Red Hat Enterprise Linux (RHEL).
4. Arch Linux и его производные, включая Manjaro.
5. openSUSE и его производные, такие как SUSE Linux Enterprise Server (SLES).
А мы в прошлой части узнали, что имеем дело с федорой. А значит там есть mlocate.db. Что из себя представляет mlocate.db?
mlocate.db это база данных, которая содержит информацию о расположении файлов на файловой системе.
Утилита mlocate сканирует файловую систему и создает индекс всех файлов и каталогов, сохраняя информацию в файле mlocate.db. Это позволяет быстро выполнять поиск файлов по их именам или путям.
Когда вы используете команду `locate` для поиска файла, она обращается к базе данных mlocate.db, чтобы найти соответствующие записи и вернуть результаты поиска.
Если у таргета есть мобильное приложение, то во первых мы можем извлечь эндпоинты с помощью консольной утилиты, а во вторых .apk перевести в .jar и проанализировать содержимое.
Допустим у нас есть цель прочитать содержимое таблицы mysql, ведь в прошлой части мы определили, что имеем дело с mysql и федорой.
По дефолту путь такой: /var/lib/mysql/название_бд/название_таблицы.ibd.
А что если админ захочет расположить таблицу по иному пути. Например /tmp/lib/mysql. Такого пути нет ни в одном паблик словаре. А если загуглить этот путь, то выдаст несколько ресурсов
Как мы знаем структура файловой системы linux вот такая:
С помощью этой структуры мы можем составить словарик. Опять вспомним нам шаблон, чтобы прочитать таблицу
/var/lib/mysql/название_бд/название_таблицы.ibd
вместо /var/lib нужно сгенерить словарик. Если вы знакомы с комбинаторикой, то вы можете посчитать сколько получится уникальных комбинаций для этого используем формулу n!/n!-k!. Где n - это количество папок, а k - сколько папок должно быть в каждой комбинации. 22!/22!-3!. Можем воспользоваться калькулятором https://calculator-online.net/ru/factorial-calculator/ в итоге получается не так уж и много комбинаций, а значит мы можем спокойно фаззить. Воспользуемся скриптом на python. В любом случае я все залью в свой тг канал.
Python: Скопировать в буфер обмена
И еще комбинации по 2 папке
Python: Скопировать в буфер обмена
Далее будем собирать эндпоинты с .apk приложения
Преобразуем .apk в .jar. С помощью консольной утилиты d2j-dex2jar. В kali linux по дефолту установлена.
Bash: Скопировать в буфер обмена
Теперь у нас есть 2 файла:
Извлечем эндпоинты из example.apk. Для этого установим утилиту https://github.com/dwisiswant0/apkleaks
Bash: Скопировать в буфер обмена
cd apkleaks
Сохраним все это дело в дальнейшем нам это пригодится.
Читаем файл mlocate.db и сохраняем его как .txt. Он содержит множество путей, вопрос, с чего начать? Что вообще читать. Помните мы извлекли с помощью apkleaks эндпоинты. Так вот, там я обнаружил интересный эндпоинт:
quantification - это название бд mysql.
В директории с quantification лежат .jar файлы - это кстати и есть исходники приложения. Нам надо их Скачать
Источник: https://xss.is
Добро пожаловать! Как и обещал выходит продолжение статьи "Веб-хакинг мои попытки стать лучшим хакером в России". На первой части набралось много положительных отзывов и я подумал почему бы не сделать продолжение. Мой товарищ предоставил мне интересный таргет и рассказал о некоторых "точках" входа. О которых я естественно никогда не слышал. В прошлой части я показал уязвимость LFR (читалка файлов). То есть уязвимость выглядела вот так: ?filename=../../../../../../etc/passwd. Мы можем просто читать файлы, которые есть на сервере, но мы не можем их запускать или заливать свои. Также мы не можем в "тупую" брутить директории, если не знаем название файла. Ответ от сервера будет различаться только в том случае, если мы смогли прочитать файл. Так что придется думать, как выстроить абсолютный путь и в целом нужно понять, где хранятся эндпоинты. Можно просмотреть логи. Но они чистились автоматически, так что там ничего интересного не было.
Содержание:
1. Поиск точек входа
2. Создание собственного словаря
3. Раскрутка уязвимости
4. Вывод
Поиск точек входа
Первое, что нам следует найти - это эндпоинты. Если мы имеем дело с linux сервером, то там скорее всего есть файл mlocate.db. Мы можем это легко проверить скачав на virtual box условно убунту. Введем следующую команду и увидим где находится этот файл:Bash: Скопировать в буфер обмена
Код:
locate mlocate.db
/usr/share/man/man5/mlocate.db.5.gz
/var/lib/mlocate/.mlocate.db.swp
/var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db.qC4Ijw
1. Ubuntu и его производные, такие как Linux Mint и elementary OS.
2. Debian и его производные, например, Kali Linux и Raspbian.
3. Fedora и его производные, включая CentOS и Red Hat Enterprise Linux (RHEL).
4. Arch Linux и его производные, включая Manjaro.
5. openSUSE и его производные, такие как SUSE Linux Enterprise Server (SLES).
А мы в прошлой части узнали, что имеем дело с федорой. А значит там есть mlocate.db. Что из себя представляет mlocate.db?
mlocate.db это база данных, которая содержит информацию о расположении файлов на файловой системе.
Утилита mlocate сканирует файловую систему и создает индекс всех файлов и каталогов, сохраняя информацию в файле mlocate.db. Это позволяет быстро выполнять поиск файлов по их именам или путям.
Когда вы используете команду `locate` для поиска файла, она обращается к базе данных mlocate.db, чтобы найти соответствующие записи и вернуть результаты поиска.
Если у таргета есть мобильное приложение, то во первых мы можем извлечь эндпоинты с помощью консольной утилиты, а во вторых .apk перевести в .jar и проанализировать содержимое.
Создание собственного словаря
Для чего это нужно? На github много паблик словарей с эндпоинтами. Но к сожалению эти эндпоинты дефолтные, а админ может запихнуть файл в необычную директорию и паблик словарь пропустит наш файл.Допустим у нас есть цель прочитать содержимое таблицы mysql, ведь в прошлой части мы определили, что имеем дело с mysql и федорой.
По дефолту путь такой: /var/lib/mysql/название_бд/название_таблицы.ibd.
А что если админ захочет расположить таблицу по иному пути. Например /tmp/lib/mysql. Такого пути нет ни в одном паблик словаре. А если загуглить этот путь, то выдаст несколько ресурсов
Как мы знаем структура файловой системы linux вот такая:
/var/lib/mysql/название_бд/название_таблицы.ibd
вместо /var/lib нужно сгенерить словарик. Если вы знакомы с комбинаторикой, то вы можете посчитать сколько получится уникальных комбинаций для этого используем формулу n!/n!-k!. Где n - это количество папок, а k - сколько папок должно быть в каждой комбинации. 22!/22!-3!. Можем воспользоваться калькулятором https://calculator-online.net/ru/factorial-calculator/ в итоге получается не так уж и много комбинаций, а значит мы можем спокойно фаззить. Воспользуемся скриптом на python. В любом случае я все залью в свой тг канал.
Python: Скопировать в буфер обмена
Код:
from itertools import product
directories = ["/bin", "/opt", "/usr", "/var", "/etc", "/home", "/lib", "/tmp", "/srv", "/mnt", "/root", "/dev", "/proc"]
for i in product(directories, repeat=3):
print(''.join(i), end='\n')
Python: Скопировать в буфер обмена
Код:
from itertools import product
directories = ["/bin", "/opt", "/usr", "/var", "/etc", "/home", "/lib", "/tmp", "/srv", "/mnt", "/root", "/dev", "/proc"]
for i in product(directories, repeat=2):
print(''.join(i), end='\n')
Преобразуем .apk в .jar. С помощью консольной утилиты d2j-dex2jar. В kali linux по дефолту установлена.
Bash: Скопировать в буфер обмена
d2j-dex2jar "example.apk"
Теперь у нас есть 2 файла:
Извлечем эндпоинты из example.apk. Для этого установим утилиту https://github.com/dwisiswant0/apkleaks
Bash: Скопировать в буфер обмена
git clone https://github.com/dwisiswant0/apkleaks.git
cd apkleaks
Сохраним все это дело в дальнейшем нам это пригодится.
Раскрутка уязвимости
Читаем файл mlocate.db и сохраняем его как .txt. Он содержит множество путей, вопрос, с чего начать? Что вообще читать. Помните мы извлекли с помощью apkleaks эндпоинты. Так вот, там я обнаружил интересный эндпоинт:
quantification - это название бд mysql.
В директории с quantification лежат .jar файлы - это кстати и есть исходники приложения. Нам надо их Скачать
View hidden content is available for registered users!