PyCript — это расширение Burp Suite, которое позволяет обходить шифрование на стороне клиента. С его помощью можно легко шифровать и дешифровать запросы, что позволяет обходить меры безопасности. Давайте подробнее рассмотрим это расширение.
Еще по теме: Горячие клавиши Burp Suite
Возможности PyCript
PyCript поддерживает кастомизацию процесса шифрования и дешифрования с использованием JavaScript и Node.js, что делает его адаптивным для различных задач. Оно работает как в ручном, так и в автоматическом режимах, поддерживая плагины.
- Шифрование и дешифрование выбранных строк из запросов и ответов.
- Просмотр и изменение зашифрованных запросов.
- Дешифровка нескольких запросов.
- Проведение сканирования Burp Scanner, SQL Map, брутфорс с помощью Intruder и других автоматизированных операций.
- Автоматическое шифрование запросов на лету.
- Полная свобода в создании логики шифрования и дешифрования.
- Поддержка шифрования и дешифрования с использованием ключа и вектора инициализации (IV) из заголовков или тела запроса.
Установка PyCript
Его можно установить через Burp Suite BApp Store или вручную.
Ручная установка
Скачайте репозиторий PyCript с GitHub:
1 |
git clone https://github.com/Anof-cyber/PyCript |
Либо загрузите репозиторий в виде zip-архива. Распакуйте содержимое zip-файла, если выбрали этот способ загрузки.
Откройте Burp Suite и перейдите на вкладку Extender.
Нажмите кнопку Add, чтобы добавить новое расширение.
В поле Extension Type выберите Python.
Нажмите Select file и найдите файл pycript.py в загруженном вами репозитории.
Нажмите Open, чтобы загрузить расширение PyCript в Burp Suite.
Теперь расширение PyCript должно отображаться на вкладке Extensions в Burp Suite.
Выбор языка программирования
Начиная с версии 0.4, PyCript поддерживает несколько языков и позволяет запускать скрипты без необходимости наличия языка в системной среде. В ранних версиях нужно было выбирать язык из выпадающего списка (Python, Java или Node.js), и расширение ожидало, что они будут доступны в системной среде, чтобы их можно было вызвать из любого терминала.
Теперь PyCript позволяет выбирать исполняемые файлы языка, например, python.exe или go.exe, в зависимости от операционной системы.
Есть два варианта:
- Нажать кнопку Select Language Binary Path и выбрать исполняемый файл языка.
- Либо вставить полный путь напрямую в текстовое поле.
Если вы увидите ошибку «команда не найдена» (например, python не найден, хотя установлен), укажите полный путь до исполняемого файла. Если же язык находится в системной среде, достаточно ввести python, python3, go, node и т.д.
- Если вы используете скрипт bash, достаточно указать bash или выбрать путь к shell, например, /bin/sh или /bin/bash.
- Для скрипта PowerShell укажите powershell.exe -File.
- Для Java можно просто выбрать полный путь к исполняемому файлу или ввести java.
- Если вы используете скомпилированные бинарные файлы (C, C++, Go и т.д.), просто оставьте поле пустым — расширение запустит исполняемый файл напрямую.
Нельзя использовать разные языки для шифрования и дешифрования (например, шифрование на Python, а дешифрование на Java). Оба процесса должны выполняться на одном языке.
Пример использования PyCript
На вкладке Config можно настроить шифрование и дешифрование запросов и ответов. Можно выбрать, на что применять шифрование/дешифрование: на запросы, ответы или оба типа. Также указывается предпочитаемый язык программирования и загружаются файлы для шифрования/дешифрования.
Пример запроса:
1 2 3 4 5 6 7 8 9 10 11 12 |
POST /api/getuser HTTP/1.1 Host: 127.0.0.1:8000 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en-US;q=0.9,en;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.134 Safari/537.36 Connection: close Cache-Control: max-age=0 Content-Type: application/json Content-Length: 24 AEIwJOtaQXdO9qzIJFIhEQ== |
На вкладке Additional Settings можно настроить параметры:
- Язык: выбирается для шифрования и дешифрования.
- Метод шифрования: доступен только для настроек запроса, используется для шифрования GET-параметров или тела запроса.
- Шифрование / дешифрование для: настраивается для запросов, ответов или обоих.
- Файлы для шифрования запросов/ответов: можно выбрать соответствующие файлы в зависимости от выбранного языка.
Функция Auto Encrypt (демонстрация работы на YouTube) позволяет автоматически шифровать запросы в Burp Suite, что особенно полезно при автоматическом сканировании, таком как активное сканирование Burp Suite или SQLMAP.
В меню PyCript также доступны функции для быстрого шифрования и дешифрования строк и запросов через контекстное меню Burp Suite.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Лучшие расширения Burp Suite
- Брутфорс сайта с помощью Burp Suite на примере bWAPP
- Использование Auth0 для взлома веб-приложения с Burp Suite