PDA

Просмотр полной версии : Sql os-shell


ivdos
21.07.2020, 14:35
В общем, как проверить в какие директории я могу залить файл? Есть один сайт, успешно обнаружил страницу которая позволяет читать файлы с сервера. Благодаря этому нашел модуль с sql инъекцией, обнаружил, что пользователь базы является рутом. Раскрыл почти все пути в каталоге с сайтом, исключение каталоги в которых хранятся всякие изображения и пдфки, но ни в один каталог запись успешна не была произведена. Сервер под управлением дебиана, апач 2.14, php 5.6. mysql

Я уж думал, что смогу войти в админку, думал, ща как вставлю через sql-shell свои данные и зайду, хрен, как прочитал оказывается эта фишка работает только на oracle и еще каком-то типе баз данных.

Хотел сбрутить пароль, но и тут странное штука меня ожидала, там очень странный способ шифрования паролей:

.SpoilerTarget" type="button">Spoiler: шифрование пароля


PHP:



Вроде как crc32 возвращает 10 символов, а в базе их 9

.SpoilerTarget" type="button">Spoiler: password


Code:
+------------+------------+------------+
| loginid | type | password |
+------------+------------+------------+
| admin | superadmin | 797024277 |
| superadmin | superadmin | 797024277 |
+------------+------------+------------+


В общем, что еще можно придумать? Я уже просто чисто из спортивного интереса хочу залить шелл, вздохнуть и со спокойной душой удалить его и пойти дальше. Уж слишком я дохрена времени на это потратил. Особенно квест с раскрыванием полного пути до сайта.

fandor9
21.07.2020, 15:07
ivdos said:
↑ (https://antichat.live/posts/4400890/)
В общем, как проверить в какие директории я могу залить файл? Есть один сайт, успешно обнаружил страницу которая позволяет читать файлы с сервера. Благодаря этому нашел модуль с sql инъекцией, обнаружил, что пользователь базы является рутом. Раскрыл почти все пути в каталоге с сайтом, исключение каталоги в которых хранятся всякие изображения и пдфки, но ни в один каталог запись успешна не была произведена. Сервер под управлением дебиана, апач 2.14, php 5.6. mysql
Я уж думал, что смогу войти в админку, думал, ща как вставлю через sql-shell свои данные и зайду, хрен, как прочитал оказывается эта фишка работает только на oracle и еще каком-то типе баз данных.
Хотел сбрутить пароль, но и тут странное штука меня ожидала, там очень странный способ шифрования паролей:
Spoiler: шифрование пароля

PHP:


Вроде как crc32 возвращает 10 символов, а в базе их 9
Spoiler: password

Code:
+------------+------------+------------+
| loginid | type | password |
+------------+------------+------------+
| admin | superadmin | 797024277 |
| superadmin | superadmin | 797024277 |
+------------+------------+------------+

В общем, что еще можно придумать? Я уже просто чисто из спортивного интереса хочу залить шелл, вздохнуть и со спокойной душой удалить его и пойти дальше. Уж слишком я дохрена времени на это потратил. Особенно квест с раскрыванием полного пути до сайта.


CRC32 (https://www.php.net/manual/ru/function.crc32.php) Возвращает контрольную сумму crc32 строки str в виде целого числа. Разве целые числа обязательно имеют 10 символов? Например для пароля "password" эта функция (EncPass("password")) выдаст целое 9-значное число 773276427. В принципе можно легко написать брутер, который бы нашёл подходящий пароль для значения 797024277.

ivdos
21.07.2020, 15:20
fandor9 said:
↑ (https://antichat.live/posts/4400894/)
CRC32 (https://www.php.net/manual/ru/function.crc32.php)
Возвращает контрольную сумму crc32 строки str в виде целого числа. Разве целые числа обязательно имеют 10 символов? Например для пароля "password" эта функция (EncPass("password")) выдаст целое 9-значное число 773276427. В принципе можно легко написать брутер, который бы нашёл подходящий пароль для значения 797024277.


Окей, просто я не вдавался в подробности работы crc32, тогда дело за малым. Пойду писать брут. Ну и судя по всему у базы данных вообще нет прав записи в директорию сайта, такое же может быть?

fandor9
21.07.2020, 15:36
ivdos said:
↑ (https://antichat.live/posts/4400896/)
Окей, просто я не вдавался в подробности работы crc32, тогда дело за малым. Пойду писать брут. Ну и судя по всему у базы данных вообще нет прав записи в директорию сайта, такое же может быть?


Может быть прописано значение secure_file_priv (https://mariadb.com/kb/en/server-system-variables/#secure_file_priv) ?

А так если база данных работает с правами рута, тогда нет.

ivdos
21.07.2020, 15:50
fandor9 said:
↑ (https://antichat.live/posts/4400899/)
Может быть прописано значение
secure_file_priv (https://mariadb.com/kb/en/server-system-variables/#secure_file_priv)
?


Хммм, а где это можно посмотреть? В information_schema есть таблицы SESSION VARIABLES и GLOBAL_VARIABLES, но они пустые.

fandor9
21.07.2020, 16:02
ivdos said:
↑ (https://antichat.live/posts/4400902/)
Хммм, а где это можно посмотреть? В information_schema есть таблицы SESSION VARIABLES и GLOBAL_VARIABLES, но они пустые.




Code:
SHOW VARIABLES LIKE "secure_file_priv";

ivdos
21.07.2020, 16:17
Нет. Что же, похоже я что-то не так делаю. Ну я серьезно уже во все пути потыкался. Что же, буду пароль брутить.

fandor9
21.07.2020, 16:47
ivdos said:
↑ (https://antichat.live/posts/4400906/)
Нет. Что же, похоже я что-то не так делаю. Ну я серьезно уже во все пути потыкался. Что же, буду пароль брутить.


у пользователя есть права на чтение/запись файлов?


Code:
SHOW GRANTS FOR @localhost;

ivdos
21.07.2020, 17:46
fandor9 said:
↑ (https://antichat.live/posts/4400911/)
у пользователя есть права на чтение/запись файлов?


Абсолютно точно да.

.SpoilerTarget" type="button">Spoiler


Code:
'root'@'localhost' (administrator) [28]:
privilege: ALTER
privilege: ALTER ROUTINE
privilege: CREATE
privilege: CREATE ROUTINE
privilege: CREATE TABLESPACE
privilege: CREATE TEMPORARY TABLES
privilege: CREATE USER
privilege: CREATE VIEW
privilege: DELETE
privilege: DROP
privilege: EVENT
privilege: EXECUTE
privilege: FILE
privilege: INDEX
privilege: INSERT
privilege: LOCK TABLES
privilege: PROCESS
privilege: REFERENCES
privilege: RELOAD
privilege: REPLICATION CLIENT
privilege: REPLICATION SLAVE
privilege: SELECT
privilege: SHOW DATABASES
privilege: SHOW VIEW
privilege: SHUTDOWN
privilege: SUPER
privilege: TRIGGER
privilege: UPDATE


Ну я собственно уже сам пароль сбрутил 3573366413