Sql os-shell

Discussion in 'Песочница' started by ivdos, 21 Jul 2020.

  1. ivdos

    ivdos New Member

    Joined:
    19 Jul 2020
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    В общем, как проверить в какие директории я могу залить файл? Есть один сайт, успешно обнаружил страницу которая позволяет читать файлы с сервера. Благодаря этому нашел модуль с sql инъекцией, обнаружил, что пользователь базы является рутом. Раскрыл почти все пути в каталоге с сайтом, исключение каталоги в которых хранятся всякие изображения и пдфки, но ни в один каталог запись успешна не была произведена. Сервер под управлением дебиана, апач 2.14, php 5.6. mysql
    Я уж думал, что смогу войти в админку, думал, ща как вставлю через sql-shell свои данные и зайду, хрен, как прочитал оказывается эта фишка работает только на oracle и еще каком-то типе баз данных.
    Хотел сбрутить пароль, но и тут странное штука меня ожидала, там очень странный способ шифрования паролей:

    PHP:
    <?
    function 
    EncPass($pass){
            
    $pass md5("`".$pass."#");
            
    //echo $pass."<br>";
            
    $pass crc32($pass);
            
    //echo $pass."<br>";
            
    return $pass;
    }

    ?>


    Вроде как crc32 возвращает 10 символов, а в базе их 9
    Code:
    +------------+------------+------------+
    | loginid    | type       | password   |
    +------------+------------+------------+
    | admin      | superadmin | 797024277  |
    | superadmin | superadmin | 797024277  |
    +------------+------------+------------+
    В общем, что еще можно придумать? Я уже просто чисто из спортивного интереса хочу залить шелл, вздохнуть и со спокойной душой удалить его и пойти дальше. Уж слишком я дохрена времени на это потратил. Особенно квест с раскрыванием полного пути до сайта.
     
  2. fandor9

    fandor9 Well-Known Member

    Joined:
    16 Nov 2018
    Messages:
    441
    Likes Received:
    676
    Reputations:
    19
    CRC32 Возвращает контрольную сумму crc32 строки str в виде целого числа. Разве целые числа обязательно имеют 10 символов? Например для пароля "password" эта функция (EncPass("password")) выдаст целое 9-значное число 773276427. В принципе можно легко написать брутер, который бы нашёл подходящий пароль для значения 797024277.
     
    crlf likes this.
  3. ivdos

    ivdos New Member

    Joined:
    19 Jul 2020
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Окей, просто я не вдавался в подробности работы crc32, тогда дело за малым. Пойду писать брут. Ну и судя по всему у базы данных вообще нет прав записи в директорию сайта, такое же может быть?
     
  4. fandor9

    fandor9 Well-Known Member

    Joined:
    16 Nov 2018
    Messages:
    441
    Likes Received:
    676
    Reputations:
    19
    Может быть прописано значение secure_file_priv ?
    А так если база данных работает с правами рута, тогда нет.
     
  5. ivdos

    ivdos New Member

    Joined:
    19 Jul 2020
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Хммм, а где это можно посмотреть? В information_schema есть таблицы SESSION VARIABLES и GLOBAL_VARIABLES, но они пустые.
     
  6. fandor9

    fandor9 Well-Known Member

    Joined:
    16 Nov 2018
    Messages:
    441
    Likes Received:
    676
    Reputations:
    19
    Code:
    SHOW VARIABLES LIKE "secure_file_priv";
     
  7. ivdos

    ivdos New Member

    Joined:
    19 Jul 2020
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Нет. Что же, похоже я что-то не так делаю. Ну я серьезно уже во все пути потыкался. Что же, буду пароль брутить.
     
  8. fandor9

    fandor9 Well-Known Member

    Joined:
    16 Nov 2018
    Messages:
    441
    Likes Received:
    676
    Reputations:
    19
    у пользователя есть права на чтение/запись файлов?
    Code:
    SHOW GRANTS FOR <current_user>@localhost;
     
  9. ivdos

    ivdos New Member

    Joined:
    19 Jul 2020
    Messages:
    6
    Likes Received:
    1
    Reputations:
    0
    Абсолютно точно да.
    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
     
    fandor9 likes this.
Loading...