На этом канале я буду делиться своими открытиями, инсайтами из мира информационной безопасности и инструментами для пентеста.
Связаться со мной: @konstanto0
Offensive security | Rad Cop
https://radcop.online/
https://t.me/radcop_online
Post #70
487
Всем привет!🕵♂️
Недавно на проекте столкнулся с таким механизмом безопасности API, который использует ключи RSA для проверки целостности запросов. Казалось бы и что тут такого...💻
Реализованный механизм призван помешать злоумышленникам манипулировать запросами, но также затрудняет проведение тестирования на проникновение. В каждый запрос вставляется новый заголовок, который формируется с помощью подписи RSA. Как раз вот тут и очень сильно усложняется процесс тестирования. Только представьте каждый раз менять подпись вручную, при смене одной буквы, запятой, вообще любого символа .😰
Решением стала автоматизация RSA-подписей. Для плагина Burp Suite я написал скрипт, которым хочу поделиться.
Свое решение более подробно с иллюстрацией работы скрипта и плагина, описал в статье, которую недавно опубликовал на habr.
- Статья
- GitHub
Недавно на проекте столкнулся с таким механизмом безопасности API, который использует ключи RSA для проверки целостности запросов. Казалось бы и что тут такого...💻
Реализованный механизм призван помешать злоумышленникам манипулировать запросами, но также затрудняет проведение тестирования на проникновение. В каждый запрос вставляется новый заголовок, который формируется с помощью подписи RSA. Как раз вот тут и очень сильно усложняется процесс тестирования. Только представьте каждый раз менять подпись вручную, при смене одной буквы, запятой, вообще любого символа .😰
Формирование подписи:
- приватный ключ
- ключ для проверки
- HTTP-метод запроса
- URI запроса (закодированный в формате URL)
- тело запроса
- объединение строк символом ( \n )
Решением стала автоматизация RSA-подписей. Для плагина Burp Suite я написал скрипт, которым хочу поделиться.
import base64
import subprocess
try:
import urllib.parse as urlparse # Try python 3 first
except ImportError:
import urllib as urlparse # Fallback for python 2
PRIVATE_KEY = "/path/to/key"
SIGNATURE_HEADER = 'XX-Signature'
if messageIsRequest:
print("Executing signature code")
...
Свое решение более подробно с иллюстрацией работы скрипта и плагина, описал в статье, которую недавно опубликовал на habr.
- Статья
- GitHub
- 👍 4
- 🔥 3
- 👏 1
- 🤓 1










