В общем, как проверить в какие директории я могу залить файл? Есть один сайт, успешно обнаружил страницу которая позволяет читать файлы с сервера. Благодаря этому нашел модуль с sql инъекцией, обнаружил, что пользователь базы является рутом. Раскрыл почти все пути в каталоге с сайтом, исключение каталоги в которых хранятся всякие изображения и пдфки, но ни в один каталог запись успешна не была произведена. Сервер под управлением дебиана, апач 2.14, php 5.6. mysql Я уж думал, что смогу войти в админку, думал, ща как вставлю через sql-shell свои данные и зайду, хрен, как прочитал оказывается эта фишка работает только на oracle и еще каком-то типе баз данных. Хотел сбрутить пароль, но и тут странное штука меня ожидала, там очень странный способ шифрования паролей: Spoiler: шифрование пароля PHP: <?function EncPass($pass){ $pass = md5("`".$pass."#"); //echo $pass."<br>"; $pass = crc32($pass); //echo $pass."<br>"; return $pass;}?> Вроде как crc32 возвращает 10 символов, а в базе их 9 Spoiler: password Code: +------------+------------+------------+ | loginid | type | password | +------------+------------+------------+ | admin | superadmin | 797024277 | | superadmin | superadmin | 797024277 | +------------+------------+------------+ В общем, что еще можно придумать? Я уже просто чисто из спортивного интереса хочу залить шелл, вздохнуть и со спокойной душой удалить его и пойти дальше. Уж слишком я дохрена времени на это потратил. Особенно квест с раскрыванием полного пути до сайта.
CRC32 Возвращает контрольную сумму crc32 строки str в виде целого числа. Разве целые числа обязательно имеют 10 символов? Например для пароля "password" эта функция (EncPass("password")) выдаст целое 9-значное число 773276427. В принципе можно легко написать брутер, который бы нашёл подходящий пароль для значения 797024277.
Окей, просто я не вдавался в подробности работы crc32, тогда дело за малым. Пойду писать брут. Ну и судя по всему у базы данных вообще нет прав записи в директорию сайта, такое же может быть?
Может быть прописано значение secure_file_priv ? А так если база данных работает с правами рута, тогда нет.
Хммм, а где это можно посмотреть? В information_schema есть таблицы SESSION VARIABLES и GLOBAL_VARIABLES, но они пустые.
Нет. Что же, похоже я что-то не так делаю. Ну я серьезно уже во все пути потыкался. Что же, буду пароль брутить.
Абсолютно точно да. 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