В январе этого года в одном из сервисов ICQ была найдена уязвимость. Она была связана с доступом к файлам, которые когда-то пользователи передавали друг-другу. Уязвимость устранили, но такие ситуации отнюдь не уникальные.
Ниже мы рассмотрим еще один сервис предназначенный для файлообмена между пользователями.
Сегодня один из заказчиков прислал мне ТЗ используя сайт droplr.com. Сервис действительно удобный. Я не пользуюсь всякими дропбоксами и подобными просто из-за низкой скорости интернета. Но данный сервис мне понравился, всё достаточно удобно, интерфейс, клиенты под различные платформы, но самое главное — можно качать чужие фалы.
Когда я перешел по ссылке от заказчика, стало ясно, что у на droplr используется сокращатель ссылок. В результате страница для загрузки файла имеет примерно такой вид: http://d.pr/[a-z]{1}/[A-z0-9]{4}
В случае с первым вхождением используется лишь один символ нижнего регистра, который как показало время совершенно безразличен системе.
Вторая последовательность длиной в 4 символа может состоять из строчных, прописных латинских символов и цифр.
Учитывая, что сервисом пользуется огромная масса народа, можно предположить, что при брутфорсе второго параметра мы будем часто натыкаться на чужие файлы, ведь общее число возможных вариантов — 14776336.
Обычно, подобные задачи я пишу на PHP или голом BASH, там есть всё что нужно, прямо из коробки. Но нужно развиваться, поэтому решил остановиться на Python, поскольку некоторый опыт работы с ним уже есть.
Судя по задаче нам необходимо как-то обращаться к сервису, в Python для этого есть много реализаций и интерфейсов, я решил остановиться на requests, поскольку эта библиотека обладает всеми требованиями, которые нам необходимы.
В случае, если у вас стоит pip, то установка займет всего несколько секунд.
pip install requests
Для парсинга страницы существует мощная библиотека под названием BeautifulSoup. Установка через pip тоже элементарна.
pip install bs4
Скачать скрипт можно на GitHub
Как я и думал, после первых 5 минут работы было найдено порядка 10 изображений с персональными данными, да еще какими!
Админка сайте, включая некоторые данные о юзерах.
Один день из жизни LR.