Найти тему

Обход авторизации с помощью SQL-инъекций.

472 прочитали
Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:
Давайте разберем ситуацию  авторизации, в случае, когда мы не знаем пароль.

Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:

Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:
Давайте разберем ситуацию  авторизации, в случае, когда мы не знаем пароль.-2

Давайте разберем ситуацию авторизации, в случае, когда мы не знаем пароль. Будем пытаться войти от имени администратора, с именем «admin».

Отредактируем наше выражение с кодом, приведя его к виду- «123' or 1=1 #». Итоговое выражение будет выглядеть, как «Select * from accounts where username='admin' and password='123' or 1=1 #'». 123 — это неверный пароль, а 1=1 — это true, а если последнее выражение верно, то и все выражение целиком будет верным, во многом, благодаря выражению «or»:

Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:
Давайте разберем ситуацию  авторизации, в случае, когда мы не знаем пароль.-3

Давайте попробуем сделать инъекцию, введя имя пользователя «admin», и выражение в поле «Password» - «123“ or 1=1 #»:

Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:
Давайте разберем ситуацию  авторизации, в случае, когда мы не знаем пароль.-4

В итоге мы успешно обошли авторизацию, и мы находимся в учетной записи администратора. «Monkey!»- это сигнатура админа.

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

Я покажу еще один пример обхода авторизации. Не только поле для пароля можно использовать для инъекции. Поле «Name», также хорошо подходит для экспериментов.

Представим наше выражение в виде двух переменных (Name ($UserName), Password ($Pass)). Выражение в «Name» будет иметь вид: «admin“ #»:

Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:
Давайте разберем ситуацию  авторизации, в случае, когда мы не знаем пароль.-5

Вставляем кусок нашего выражения, в переменную #UserName. В нем я указал кавычку, которая прерывает дальнейшее выполнение выражения:

Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:
Давайте разберем ситуацию  авторизации, в случае, когда мы не знаем пароль.-6

Давайте попробуем авторизироваться на данном сайте повторно, но с новой техникой. Выражение в поле «Name» будет иметь вид - «admin' #», а в поле «Password» мы укажем произвольный пароль:

Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:
Давайте разберем ситуацию  авторизации, в случае, когда мы не знаем пароль.-7

Жмем на кнопку «Login»:

Продолжаем рассматривать SQL-инъекции, и нам можно вставлять код в следующее выражение:
Давайте разберем ситуацию  авторизации, в случае, когда мы не знаем пароль.-8

Мы успешно вошли под учетной записью администратора. Обычно, в этом случае, Вы не будете видеть ошибки, и код соответственно.

Не буду повторяться, но сначала нужно поиграть с выражениями, вставляя кавычки, истинные и ложные выражения. Нужно практиковаться, и тогда будет проще работать с SQL-инъекциями.

На этом все. Всем хорошего дня!