Продолжаем цикл статьей «Использование Python в OSINT». В предыдущей статье мы говорили про получение информации о домене, сегодня рассмотрим использование Python для работы с API.
Еще по теме: Создание бэкдора на Python
Работа с API в Python
Когда вы открываете страницу в браузере, происходит запрос к серверу. В ответ на запрос сервер возвращает статус, заголовки и тело ответа (например, html-код веб-страницы, некоторые данные в формате CSV, JSON или XML).
Самый простой способ понять, что происходит, — визуально. Откройте https://resttesttest.com, скопируйте туда какую-нибудь ссылку и нажмите кнопку «AJAX request».
В OSINT часто требуется автоматизировать сбор данных с веб-страниц или различных API. И базовый навык, необходимый для этого, — написать код для отправки запросов на веб-серверы и обработки ответов.
API — это технология, которая позволяет вам взаимодействовать с приложением, отправляя запросы на сервер. Например, Github API позволяет получать данные о пользователях Github, а также вносить изменения в репозитории и многое другое.
Для этого мы будем использовать запросы пакетов (https://pypi.org/project/requests/).
Установить пакет api_request:
1 |
pip install requests |
Запустите api_request.py:
1 2 3 4 5 6 7 |
# Добавить пакет запросов в файл скрипта с помощью команды импорта: import requests # Сделать запрос: response = requests.get("https://api.github.com/search/users?q=javascript") # Отобразить результат в формате JSON: print(response.json()) |
Пусть вас не пугает мой терминал, я использую GitPod.
Существует огромное количество API, как платных, так и бесплатных, которые предоставляют полезные данные для OSINT, такие, как информацию о:
- номерах телефонов, адресах и почтовых индексах;
- компаниях;
- доменах и IP-адресах;
- криптокошельках и транзакциях;
- пользователях различных социальных сетей.
Список из более чем сотни полезных OSINT API можно найти на этом Github репозиторий:
Нет необходимости писать отдельный скрипт Python для тестирования различных API. Лучше использовать специальные онлайн-сервисы, которые могут имитировать разные типы запросов и способы авторизации. Например, reqbin.com или REST API Tester.
Мы вернемся к теме сетевых запросов, когда будем говорить о файлах JSON, парсинге и использовании прокси-серверов. В следующей статье научимся добавлять заголовки в запрос и извлекать данные из текстов ответов.
ПОЛЕЗНЫЕ ССЫЛКИ: